SimpleMessageListenerContainer ChannelTransacted和MaxConcurrentConsumers

时间:2015-05-11 17:55:54

标签: transactions rabbitmq amqp spring-amqp

我正在尝试使用通道事务从Spring AMQP配置SimpleMessageListenerContainer,以根据需要动态添加使用者。问题是,当我有一个通道交易时,我没有看到消费者被动态添加。需要明确的是,这不会动态地在负载下添加消费者:

container.setMaxConcurrentConsumers(5);
container.setChannelTransacted(true);
container.setTransactionManager(rabbitTransactionManager);

但这样做:

container.setMaxConcurrentConsumers(5);
//container.setChannelTransacted(true);
//container.setTransactionManager(rabbitTransactionManager);

我的问题是:

  1. 为什么不动态添加消费者?
  2. 是否有解决办法让渠道交易和动态消费者都能工作?

1 个答案:

答案 0 :(得分:2)

  1. 这是一个错误 - 请打开JIRA issue

  2. 不幸的是,没有解决方法;它需要补丁。

  3. 与RabbitMQ的交易使用非常少见,特别是在消费者方面 - 你能解释为什么需要它们吗?