问题描述
我需要每秒从 IBM MQ 接收“n”条消息。示例:我每秒最多需要接收 10 条消息。
我想使用spring的DefaultMessageListnerContainer。
可以通过设置以下配置来实现吗?
<bean id="msgListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="mqConnectionFactory"
p:messageListener-ref="myMessageListener"
p:concurrentConsumers="1"
p:maxConcurrentConsumers="10"
p:receiveTimeout="1000"
p:maxMessagesPerTask = "10" />
解决方法
如果您想控制消息消耗率,最好使用 JmsTemplate.receiveAndConvert()
而不是消息驱动的架构。
Spring DMLC 没有内置节流阀。Apache Camel 是另一种为 JMS -> 节流阀 -> 数据处理而设计的选项