java实现mq的发布订阅
时间: 2023-08-10 10:17:43 浏览: 150
MQ JMS 发布订阅配置、代码
Java 实现 MQ 的发布订阅,可以使用 Apache ActiveMQ 等开源消息中间件框架。
下面是一个简单的示例代码:
1. 首先,需要引入 ActiveMQ 的依赖:
```xml
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.16.0</version>
</dependency>
```
2. 然后,创建一个 ActiveMQ 的连接工厂对象,用于创建连接:
```java
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
```
3. 创建一个订阅者(或消费者):
```java
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createTopic("myTopic");
MessageConsumer consumer = session.createConsumer(destination);
```
其中,"myTopic" 是发布者发布消息时指定的主题名称。
4. 接着,创建一个消息监听器,用于处理接收到的消息:
```java
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String text = textMessage.getText();
System.out.println("Received message: " + text);
}
} catch (JMSException e) {
e.printStackTrace();
}
}
});
```
5. 最后,创建一个发布者(或生产者),向指定的主题发布消息:
```java
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createTopic("myTopic");
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage();
message.setText("Hello, world!");
producer.send(message);
```
这样,就完成了 MQ 的发布订阅功能的实现。当发布者发布消息时,订阅者就会接收到该消息并进行处理。
阅读全文