activemq将代理中的消息分发给特定订户

时间:2016-09-20 16:10:44

标签: activemq messagebroker

我使用activemq和spring boot。 我只想向特定订阅者发送主题。我知道要实现它,我可以在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();
} 

假设我有能够发送两个主题BOOKS和FOOD的消息。 对于订户A,仅提供BOOKS,订户B BOOKS和FOOD。

问题: 是否有可能在经纪人层面实现它?如果是这样的话。我知道有一些像目的地政策,但我不知道如何使用它:(

1 个答案:

答案 0 :(得分:0)

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

  1. 每个订阅者的单独主题(主题:// BOOKS,topic:// FOOD)
  2. 单个主题,但使用邮件标题(主题:// EVENTS) 一个。消息标题" EVENT_TYPE =' FOOD'"或" EVENT_TYPE =' BOOKS'"
  3. 您可以保护目的地,只有'书籍'用户可以订阅主题:// BOOKS,只有' food'用户可以订阅主题:// FOOD
  4. 使用发布到主题的虚拟主题,订阅队列并充分利用上述所有内容。例如,发布到:topic:// EVENTS然后订阅:queue://vConsumer.BOOKS.EVENTS,queue://vConsumer.FOOD.EVENTS
  5. 链接: