社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MQ

如何使用来自主题activemq artemis的消息

Vitor • 5 年前 • 602 次点击  

我正在尝试与ActiveMQ Artemis的主题合作。

我在这个地址中创建了一个多播地址和一个多播队列。

在本主题中创建了两个使用apache camel连接的路由,但是当我只发布消息时,一个路由使用消息,当我发布另一个消息时,使用此消息消息的secont路由。

低于代码和输出。

public class CamelRoutes {

  public static void main(String[] args) throws Exception {
    ActiveMQJMSConnectionFactory connection = new ActiveMQJMSConnectionFactory("tcp://localhost:61616", "admin", "admin");

    CamelContext camel = new DefaultCamelContext();
    camel.addComponent("amq", JmsComponent.jmsComponent(connection));

    camel.addRoutes(new RouteBuilder(){

      @Override
      public void configure() throws Exception {
        from("amq:TEST.TOPIC")
        .routeId("Route1")
        .log("ROUTE1: ${body}");
      }
    });
    camel.addRoutes(new RouteBuilder(){

      @Override
      public void configure() throws Exception {
        from("amq:TEST.TOPIC")
        .routeId("Route2")
        .log("ROUTE2: ${body}");
      }
    });
    camel.start();
    Thread.sleep(20000000);
  }
}
2019-02-11 16:35:42 [Camel (camel-1) thread #1 - JmsConsumer[TEST.TOPIC]] INFO  Route1:159 - ROUTE1: {"message":1}
2019-02-11 16:35:45 [Camel (camel-1) thread #2 - JmsConsumer[TEST.TOPIC]] INFO  Route2:159 - ROUTE2: {"message":2}
2019-02-11 16:35:48 [Camel (camel-1) thread #1 - JmsConsumer[TEST.TOPIC]] INFO  Route1:159 - ROUTE1: {"message":3}
2019-02-11 16:35:51 [Camel (camel-1) thread #2 - JmsConsumer[TEST.TOPIC]] INFO  Route2:159 - ROUTE2: {"message":4}
2019-02-11 16:35:54 [Camel (camel-1) thread #1 - JmsConsumer[TEST.TOPIC]] INFO  Route1:159 - ROUTE1: {"message":5}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30865
 
602 次点击  
文章 [ 1 ]  |  最新文章 5 年前
fg78nc
Reply   •   1 楼
fg78nc    5 年前

您是从队列消费,而不是从主题消费。 您需要更正消费者的URI方案。

将您的消费者更改为:

from("amq:topic:TEST.TOPIC");

这是创建队列使用者的方法:

from("amq:queue:YOUR.QUEUE.NAME);
// or as queue is default value
from("amq:YOUR.QUEUE.NAME);

以下是创建主题消费者的方法:

from("amq:topic.YOUR.TOPIC.NAME);