Rabbitmq 在SimpleMessageListenerContainer上使用addQueueNames需要更多时间

Rabbitmq 在SimpleMessageListenerContainer上使用addQueueNames需要更多时间,rabbitmq,spring-amqp,consumer,spring-rabbit,Rabbitmq,Spring Amqp,Consumer,Spring Rabbit,我们使用SimpleMessageListenerContainer,其(最大)消费者计数为75。我们有一个用例,需要从一些队列中动态订阅和取消订阅,因此我们使用addQueueNames()和removeQueueNames()。当消费者计数为75时,addQueueNames()方法大约需要15秒才能完成。我们目前大约有200个队列。我们经常想从侦听器中添加和删除队列,那么我们还有其他方法来减少这一时间吗?当添加或删除队列时,当前我们必须取消当前消费者,并从新的队列列表中重新消费 该功能并不

我们使用SimpleMessageListenerContainer,其(最大)消费者计数为75。我们有一个用例,需要从一些队列中动态订阅和取消订阅,因此我们使用addQueueNames()和removeQueueNames()。当消费者计数为75时,addQueueNames()方法大约需要15秒才能完成。我们目前大约有200个队列。我们经常想从侦听器中添加和删除队列,那么我们还有其他方法来减少这一时间吗?

当添加或删除队列时,当前我们必须取消当前消费者,并从新的队列列表中重新消费

该功能并不是真正为快速更改队列列表而设计的,特别是对于大量这样的队列

如果使用多个容器(每个容器都有总队列列表的一个子集),以避免每次更改都搅动所有消费者,您可能会发现性能会稍微好一些

对于2.0(明年,但我们可能会在秋季迎来一个里程碑),我们计划完全重写侦听器容器,以利用rabbitmq客户机库中的一些更改,并获取更多信息


作为重写的一部分,我们可能会使更改队列列表更有效;请随时向JIRA添加评论,这样我们就不会忘记。

当添加或删除队列时,当前我们必须取消当前消费者并从新队列列表中重新消费

该功能并不是真正为快速更改队列列表而设计的,特别是对于大量这样的队列

如果使用多个容器(每个容器都有总队列列表的一个子集),以避免每次更改都搅动所有消费者,您可能会发现性能会稍微好一些

对于2.0(明年,但我们可能会在秋季迎来一个里程碑),我们计划完全重写侦听器容器,以利用rabbitmq客户机库中的一些更改,并获取更多信息


作为重写的一部分,我们可能会使更改队列列表更有效;请随时为JIRA添加评论,以免我们忘记。

谢谢@GaryRussell。我对Jira问题发表了评论。2.0.0.M2(里程碑2)现在可用;M3将于下周发布。最终版本将于夏季(目前为6月)发布。谢谢@GaryRussell。我对Jira问题发表了评论。2.0.0.M2(里程碑2)现在可用;M3将于下周发布,最终发布时间为夏季(目前为6月)。