jgroups - callRemoteMethodsWithFuture 块
Posted
技术标签:
【中文标题】jgroups - callRemoteMethodsWithFuture 块【英文标题】:jgroups - callRemoteMethodsWithFuture blocks 【发布时间】:2017-08-03 12:49:10 【问题描述】:我有一个用例,其中协调器由应用程序选择(使用自定义 MembershipPolicy 并选择配置为主节点的节点),并且主节点的丢失应该不会花很长时间才能被客户端节点意识到正在制作 RPC(假设操作的成功/失败取决于主服务器的存在/不存在)。如果没有 callRemoteMethods(),我可以在 RequestOptions 中指定一个可接受的超时,但是如果我说有 100 个请求在队列中,这会增加 RTT。因此,我使用 callRemoteMethodsWithFuture() 来避免多个 RPC 之间的网络传输时间。然而问题是,在堆栈中使用 SEQUENCER 时, callRemoteMethodsWithFuture() 会阻塞,直到消息被转发到协调器。在这种情况下失去协调器会使调用阻塞,直到发生视图更改。这是我想在我的应用程序中避免的事情(因为协调器丢失等同于主丢失,并且主丢失必须由调用者尽快识别)。删除 SEQUENCER 不是一种选择。我该如何进行?
【问题讨论】:
【参考方案1】:简短回答:这是 API 的预期行为。我已经和 JGroups 的作者进一步讨论了这个问题,可以关注 Jgroups groups
【讨论】:
以上是关于jgroups - callRemoteMethodsWithFuture 块的主要内容,如果未能解决你的问题,请参考以下文章
jgroups - callRemoteMethodsWithFuture 块
安装u camel-jgroups u 2.11-SNAPSHOT