【问题标题】:Using addQueueNames on SimpleMessageListenerContainer takes more time在 SimpleMessageListenerContainer 上使用 addQueueNames 需要更多时间
【发布时间】:2016-07-26 19:32:26
【问题描述】:

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

【问题讨论】:

    标签: rabbitmq spring-amqp consumer spring-rabbit


    【解决方案1】:

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

    该功能并不是真正为快速更改队列列表而设计的,尤其是在有大量这样的队列时。

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

    对于 2.0(明年,但我们可能会在秋季推出一个里程碑),我们计划完全重写监听器容器,以利用 rabbitmq 客户端库 see this answer 和 @987654322 中的一些更改@了解更多信息。

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

    【讨论】:

    • 谢谢@GaryRussell。我评论了 Jira 问题。
    • 2.0.0.M2(里程碑2)现已上市; M3 将于下周发布,最终版本将在夏季(目前为 6 月)发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2023-03-02
    相关资源
    最近更新 更多