ActiveMQ 连接到 address/port 处的现有队列

ActiveMQ connect to existing queue at an address/port

我应该将消息发送到名为 "IngestGenericJSONQueue" 的 ActiveMQ 队列,地址为 10.7.1.10,端口为 61616。我可以创建一个 ActiveMQConnectionFactory 对象,但我该如何查找现有队列?到目前为止,我只找到了 session.createQueue() 函数,但我不确定这是用于创建与现有队列的连接,还是仅用于创建全新队列。如何按名称连接到现有的 activemq 队列?

ConnectionFactory cFactory = new ActiveMQConnectionFactory("tcp://10.7.1.10:61616");
Connection connection = cFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Destination queue = session.createQueue("IngestGenericJSONQueue");

System.out.println("queue connected");

MessageProducer producer = session.createProducer(queue);
TextMessage m = session.createTextMessage();
m.setText(jsonStix.toString());

producer.send(m);

System.out.println("done");

ActiveMQ 按需创建队列和主题,因此如果在创建生产者时不存在同名队列,则会创建一个新队列。如果队列已经存在,那么生产者将发送到该队列。

您可以使用 JMX 或 Web 控制台等管理工具来探索 运行 Broker 以查看已经存在的队列。