用于同步 RPC 调用的 JGroups 协议
JGroups protocols for synchronous RPC calls
我们约 50 名成员的集群使用 JGroups 进行 1-2-1 RPC 调用(同步)。
一天调用数万次,完成时间在10毫秒到1小时不等。请求和响应大小范围为 0 到 100 MB。
我们的主机分散在不同的数据中心,因此使用TCP。
没有多播消息,只有同步 RPC 调用。
conf/tcp.xml 中的哪些协议应该与最新的 JGroups 版本一起使用?
有什么比 TCP Like TCP_NIO 更好的吗?
which complete in the range of 10 ms to 1 hour.
如果一个 RPC 最多需要 1 小时,我认为 同步 RPC 不是可行的方法;我宁愿建议切换到异步的...或者,您可以调用 return CompletableFuture 的 RPC,只要调用完成就会调用其函数。这样做的好处是您不会阻塞池中的线程...
我会从 tcp.xml
开始,然后根据需要进行更改。例如。将 max_threads 变量增加到 50,以同时容纳所有 50 个成员 sendind。
此外,请考虑使用常规 RPC 还是 OOB RPC:除非您需要订购,否则 OOB RPC 可以并行传递,而常规 RPC(由同一发送者)则逐一传递。
如果不需要状态转移,请删除 BARRIER
和 STATE_TRANSFER
。
我建议写一个简单的性能测试(或使用UPerf)并衡量性能是否合适。我还会使用 probe.sh
查看统计数据。
您可以在 JGroups 中调整很多东西,在这里列出所有措施会花费太长时间...
我们约 50 名成员的集群使用 JGroups 进行 1-2-1 RPC 调用(同步)。
一天调用数万次,完成时间在10毫秒到1小时不等。请求和响应大小范围为 0 到 100 MB。
我们的主机分散在不同的数据中心,因此使用TCP。
没有多播消息,只有同步 RPC 调用。
conf/tcp.xml 中的哪些协议应该与最新的 JGroups 版本一起使用? 有什么比 TCP Like TCP_NIO 更好的吗?
which complete in the range of 10 ms to 1 hour.
如果一个 RPC 最多需要 1 小时,我认为 同步 RPC 不是可行的方法;我宁愿建议切换到异步的...或者,您可以调用 return CompletableFuture 的 RPC,只要调用完成就会调用其函数。这样做的好处是您不会阻塞池中的线程...
我会从 tcp.xml
开始,然后根据需要进行更改。例如。将 max_threads 变量增加到 50,以同时容纳所有 50 个成员 sendind。
此外,请考虑使用常规 RPC 还是 OOB RPC:除非您需要订购,否则 OOB RPC 可以并行传递,而常规 RPC(由同一发送者)则逐一传递。
如果不需要状态转移,请删除 BARRIER
和 STATE_TRANSFER
。
我建议写一个简单的性能测试(或使用UPerf)并衡量性能是否合适。我还会使用 probe.sh
查看统计数据。
您可以在 JGroups 中调整很多东西,在这里列出所有措施会花费太长时间...