给定一个有 50 多个消费者的ActiveMQ队列,有没有办法每秒最多向消费者分派 1 个事件?这是为了控制大量的事件调度。
事件生产者在我的应用程序之外。因此,我需要处理来自消费者端的受控调度。
我有一个配置为低至 5 的 jms 预取策略。我不想在几秒钟内向消费者发送 100 条消息。相反,我希望它是一个稳定的流动。
如何配置队列消费者以在受控流程中分派?
给定一个有 50 多个消费者的ActiveMQ队列,有没有办法每秒最多向消费者分派 1 个事件?这是为了控制大量的事件调度。
事件生产者在我的应用程序之外。因此,我需要处理来自消费者端的受控调度。
我有一个配置为低至 5 的 jms 预取策略。我不想在几秒钟内向消费者发送 100 条消息。相反,我希望它是一个稳定的流动。
如何配置队列消费者以在受控流程中分派?
据我所知,没有办法限制消费者。
您可以做的是使用内置的 Camel-routes 限制流向消费者队列的流量。也许您可以找到一种方法在您的情况下使用此功能?
vm://localhost?create=false
<include resource="camel.xml"/>
将 camel.xml 中的路由编辑为类似这样的内容(1msg/1000ms)
<route>
<description>Throttler 1 msg/s</description>
<from uri="activemq:msgs.in"/>
<throttle timePeriodMillis="1000" asyncDelayed="true">
<constant>1</constant>
<to uri="activemq:msgs.out"/>
</throttle>
</route>