上篇博客寫了生產者生產消息:ActiveMQ向消息隊列存入消息
package com.vhukze.consumer;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Consumer {
//mq通訊地址
private static String url = "tcp://127.0.0.1:61616";
//隊列名稱
private static String queueName = "my_queue";
public static void main(String[] args) throws JMSException {
System.out.println("消費者1");
//創建連接工廠
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
//創建連接
Connection connection = factory.createConnection();
//啓動連接
connection.start();
//創建會話,參數1,設置是否需要事務方式提交,參數2,消息方式 默認採用自動接收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//創建目標(隊列)
Queue queue = session.createQueue(queueName);
//創建消費者
MessageConsumer consumer = session.createConsumer(queue);
//啓動監聽消息
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
try {
TextMessage textMessage = (TextMessage) message;
System.out.println("消費消息:"+textMessage.getText());
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
運行代碼輸出
現在再來看ActiveMQAdmin頁面查看
我們可以啓動兩次消費者,就是一個集羣。
然後再運行生產者代碼,觀察兩個消費者的控制檯
均攤