我有一条这样的路线:
[producer1]--->[blocker]--->
|--->[aggregator]---> [consumer]
[producer2]---------------->
Producer1
和producer2
正在向 aggregator
推送消息。如果有两条消息具有相同的 id,则聚合完成,聚合后的消息将被路由到消费者。
是否可以封锁producer1
之后的路线发送消息至aggregator
?类似 wait until the consumer receives the aggregated message
。
最佳答案
不,这是不可能的,因为聚合器是两条腿的。因此,聚合器输出的内容与输入的内容无关。
但是,您可以构建一个 java bean 并使用 CountDownLatch,然后在调用聚合器后进行阻止,然后在从聚合器收到传出消息时发出倒计时信号。
关于java - 阻塞路由直到消费者收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784330/