一、啓動ActiveMQ
二、生產者代碼
/**
* @program: activemqdemo
* @description:
* @author: hq.zheng
* @create: 2019-08-17 14:45
*/
public class Producer {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :連接工廠,JMS 用它創建連接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616");
//JMS 客戶端到JMS Provider 的連接
Connection connection = connectionFactory.createConnection();
//啓動連接
connection.start();
//Session: 一個發送或接收消息的線程,自動簽收
Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
//Destination :消息的目的地;消息發送給誰.
//獲取session注意參數值my-queue是Query的名字
Destination destination = session.createQueue("my-queue");
//MessageProducer:消息生產者
MessageProducer producer = session.createProducer(destination);
//設置不持久化
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// 發送一條消息
TextMessage textMessage = session.createTextMessage("This is my first ActiveMQ");
producer.send(textMessage);
//關閉連接
session.close();
connection.close();
}
}
運行後
三、消費者代碼
/**
* @program: activemqdemo
* @description:
* @author: hq.zheng
* @create: 2019-08-17 15:08
*/
public class Receiver {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :連接工廠,JMS 用它創建連接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616");
// JMS 客戶端到JMS Provider 的連接
Connection connection = connectionFactory.createConnection();
connection.start();
// Session: 一個發送或接收消息的線程
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// Destination :消息的目的地;消息發送給誰.
// 獲取session注意參數值xingbo.xu-queue是一個服務器的queue,須在在ActiveMq的console配置
Destination destination = session.createQueue("my-queue");
// 消費者,消息接收者
MessageConsumer consumer = session.createConsumer(destination);
while (true) {
TextMessage message = (TextMessage) consumer.receive();
if (null != message) {
System.out.println("收到消息:" + message.getText());
session.commit();
} else
break;
}
session.close();
connection.close();
}
}
運行後