【问题标题】:Dynamic binding multi queue to one handler将多队列动态绑定到一个处理程序
【发布时间】:2017-03-21 18:42:29
【问题描述】:

是否可以将多个队列绑定到一个事件处理程序?关键是这些队列将被动态添加(绑定),第一个,接下来的两个等等。我希望只有一个事件处理程序。

也许基于代码创建的队列由n 其他现有队列支持?

【问题讨论】:

    标签: java rabbitmq


    【解决方案1】:

    如果您使用Spring AMPQ,那么您应该熟悉ListenerContainer 抽象。所以,你配置你的单一监听器(handler 在你的术语中)并让容器管理队列和其他连接和生命周期选项。

    您可以在Reference Manual 中找到所有必需的选项。 另见Listener Container Queues:

    查看方法addQueuesaddQueueNamesremoveQueuesremoveQueueNames

    更多信息在:Dynamically add new queues, bindings and exchanges as beans

    【讨论】:

    • 有一点不清楚:你建议addQueues,但后来你给出了我们手动修改spring上下文的链接:context.getBeanFactory().registerSingleton("foo", new Queue("foo"));这是怎么回事?
    • 没什么。只是一个补充。这个故事是关于如何修改容器的。那一个如何在应用程序上下文中添加队列进行管理。
    • 所以我可以使用其中之一?
    • 不,对于您的用例,您必须使用我的答案。如果您需要管理新队列,则必须将它们注册为 bean。该容器仅使用队列名称就可以很好地工作。
    • Spring Boot 主题无关。如果您在 Broker 上已经有队列,您只需要在运行时订阅它们的名称。否则是的,您必须首先将它们注册为 bean 并调用admin.initialize()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多