我有一个消息具有属性名称 orderno 的队列我如何从按 orderno 排序的队列中获取消息
问问题
1417 次
1 回答
2
你要做的真的是resequencer企业集成模式
您可以使用与 ActiveMQ 捆绑在一起的 Apache Camel 来实现这一点。
您需要做的是将以下内容添加到 ActiveMQ 中的“camel.xml”配置文件中。
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:queue:unordered"/>
<resequence>
<simple>in.header.orderno</simple>
<to uri="activemq:queue:ordered" />
<stream-config capacity="5000" timeout="4000"/>
</resequence>
</route>
</camelContext>
然后只需确保该文件包含在您的 ActiveMQ 配置中,例如 activemq.xml:
<import resource="camel.xml"/>
请注意,此设置将从“无序”队列中以任何顺序读取消息,而您的应用程序应从“有序”队列中读取重新排序的消息。
于 2012-10-11T09:41:41.060 回答