SimpleMessageListenerContainer ChannelTransacted 和 MaxConcurrentConsumers

SimpleMessageListenerContainer ChannelTransacted and MaxConcurrentConsumers

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

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

但是这样做:

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

我的问题是:

  1. 为什么不动态添加消费者?
  2. 是否有解决方法可以让渠道交易和动态消费者同时工作?
  1. 这是一个错误 - 请打开一个 JIRA issue

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

使用 RabbitMQ 进行事务处理的情况非常少,尤其是在消费者方面 - 您能解释一下为什么需要它们吗?