我有两个AMQ队列拥有相同的消费者。 第一个队列(Q1)处理了97%的消息,而另一个队列(Q2)只有3%。 问题是,需要尽快处理Q2中排队的消息。 当Q2中有可用的消息时,我需要暂停第一个路由以取代它的消费者。 Apache Camel路由如下:
<route id="q1">
<from uri="jms:recordAnalysisRequests" />
<to uri="bean:analysisService" />
</route>
<route id="q2">
<from uri="jms:recordAnalysisRequestsFastTrack" />
<to uri="bean:analysisService" />
</route>
应该使用什么策略? 我认为不能使用重排机制,因为Q1可能有数千个消息排队,而我无法将所有消息都适配到重排批处理中。 我正在研究路由限制,但是我不知道如何实现。 此外,我想知道是否可以通过zookeeper节点进行同步。如果这种解决方案可行,我需要一些指导。
[apache]
和[camel]
这两个标签在一起并不等同于单个的[apache-camel]
标签。在选择标签时,请务必仔细阅读出现的描述! - Charles