【问题标题】:activemq dispatch messages in broker to specific subscribers代理中的 activemq 向特定订阅者发送消息
【发布时间】:2017-01-28 16:02:54
【问题描述】:

我在 spring boot 中使用 activemq。 我只想将主题发送给特定的订阅者。我知道要实现它,我可以在 JMSListener 上指定选择器,但这意味着我已经向订阅者发送了消息。我想要做的是在代理级别发送消息。 目前我有以下代码:

public Broker broker() throws Exception {
    BrokerService broker = new BrokerService();
    broker.setBrokerName(BROKER_NAME);
    broker.addConnector(BROKER_URL);
    policy.setTopic(USER_TOPIC);
    broker.start();
    return broker.getBroker();
} 

假设我有消息可以发送两个主题书和食物。 对于订阅者 A,只有 BOOKS 可用,对于订阅者 B BOOKS 和 FOOD。

问题: 是否有可能在经纪人层面实现?如果有怎么办。我知道有类似目的地政策的东西,但我不知道如何使用它:(

【问题讨论】:

    标签: activemq messagebroker


    【解决方案1】:

    可以通过多种方式将消息路由和保护到不同的主题或队列目标:

    1. 每个订阅者的单独主题(topic://BOOKS,topic://FOOD)
    2. 单个主题,但使用消息头 (topic://EVENTS) 一种。消息头“EVENT_TYPE='FOOD'”或“EVENT_TYPE='BOOKS'”
    3. 您可以保护目的地,因此只有“图书”用户可以订阅主题://BOOKS,并且只有“食物”用户可以订阅主题://FOOD
    4. 使用发布到主题的虚拟主题,订阅队列并充分利用上述所有内容。例如发布到:topic://EVENTS,然后订阅:queue://vConsumer.BOOKS.EVENTS,queue://vConsumer.FOOD.EVENTS

    链接:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 2015-06-30
      • 2020-01-25
      • 2018-02-24
      • 2017-02-20
      • 2014-10-23
      相关资源
      最近更新 更多