如果有两个侦听器/订阅者,其中一个回复 TibRvdTransport.sendRequest(message,timeout)

If there are two listeners / subscribers which one replies to TibRvdTransport.sendRequest(message,timeout)

如果我使用以下方法向多播主题发送消息:

TibrvMsg replyMessage = TibRvdTransport.sendRequest(消息,超时)

并且有两个订阅者,其中一个实际发送了 replyMessage,另一个 replyMessage 发生了什么?

我只能猜出最快的答案。但是我在任何地方都看不到这个记录。

由于您的组件是解耦的,因此它们不会相互感知。 Rendezvous 是 pub-sub,这意味着所有订阅者都会收到发布到他们订阅的主题的所有消息。此外,Rendezvous 使用点对点消息传递方法,而不是集中式消息转发方法。因此,两个组件都会收到消息,并且两个组件都会回复。

如果这不是所需的行为,您可以通过 Rendezvous 使用分布式队列 (RVDQ)。使用这种方法,"scheduler" 将工作分配给工作人员,确保消息只处理一次。