java 实现ActiveMQ订阅消费代码
时间: 2024-09-15 13:08:11 浏览: 35
在Java中实现ActiveMQ的订阅和消费,通常会使用Apache ActiveMQ的客户端API。以下是一个简单的示例,展示了如何创建一个消费者连接到ActiveMQ队列并接收消息:
```java
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
public class ActiveMQConsumer {
private static final String QUEUE_NAME = "exampleQueue"; // 队列名称
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); // Broker地址及端口
try {
Connection connection = connectionFactory.createConnection();
connection.start(); // 开始连接
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 非持久化、自动确认模式
Destination destination = session.createQueue(QUEUE_NAME);
MessageConsumer consumer = session.createConsumer(destination);
System.out.println("Subscribed to queue: " + destination);
while (true) {
javax.jms.Message message = consumer.receive(5000); // 等待接收消息,超时时间为5秒
if (message != null) {
String text = ((TextMessage) message).getText(); // 提取文本消息内容
System.out.println("Received message: " + text);
message.acknowledge(); // 手动确认接收到的消息
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
```
在这个例子中,我们首先创建了一个`ConnectionFactory`,然后建立连接并创建一个会话。接着,我们创建一个消费者来订阅指定的队列。程序将进入一个无限循环,在其中等待并处理从队列接收到的消息。
阅读全文