【发布时间】:2018-12-11 00:39:26
【问题描述】:
我们使用Tibco EMS 作为我们的消息传递系统,并使用apache camel 来编写我们的应用程序。在我们的应用程序中,消息被写入队列。 concurrentConsumers 设置为 8 的组件从队列中读取,处理消息,然后写入另一个队列。另一个组件,同样将concurrentConsumers 设置为 8,然后从这个新队列中读取,依此类推。到目前为止,维护消息顺序并不重要,但一个新的要求意味着它现在很重要。看骆驼文档,建议使用jmsxgroupid来维护排序。不幸的是,Tibco EMS 不提供此功能。在多线程应用程序中是否有其他方法可以在骆驼中保持顺序?我看过粘性负载平衡,但这似乎只适用于端点负载平衡。
谢谢
布鲁斯
【问题讨论】:
-
并发执行不能保证顺序...尤其是当任务需要不同的时间来执行...EG网络操作,比如发送消息...
-
在此链接查看重测序器 EIP:camel.apache.org/resequencer.html
-
为什么 jmsxgroupid 不能与 TIBCO EMS 一起使用?它是从那天开始支持的 JMS 规范的一部分(查看文档)
标签: java multithreading apache-camel