Activemq點對點的的簡單實現
思路
生產者
代碼如下:
package com.zuojie.prodeucer;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Productor {
private static final String USERNAME="admin";
private static final String PASSWORD="admin";
private static final String BREAKERURL="tcp://10.211.55.11:61616";
private static final String QUEUENAME="zuojie";
public static void main(String[] args) throws JMSException {
start();
}
public static void start() throws JMSException {
//獲取activeMQ 會話工廠
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD,BREAKERURL);
//創建activeMql連接
Connection connection= activeMQConnectionFactory.createConnection();
//開啓activeMQ連接
connection.start();
//jms設置消息的可靠性,自動簽收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//創建隊列
Queue queue = session.createQueue(QUEUENAME);
//創建一個生產者
MessageProducer producer = session.createProducer(queue);
for(int i=0;i<5;i++) {
//設置存放消息隊列內容
TextMessage textMessage = session.createTextMessage("小凡");
//發送消息
producer.send(textMessage);
}
System.out.println("消息隊列存放成功");
//關閉連接
connection.close();
}
}
消費者
代碼如下:
package com.zuojie.receiver;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 功能描述:使用點對點通信 生產者模式
* @author:zuojie
*/
public class Receive {
private static final String USERNAME="admin";
private static final String PASSWORD="admin";
private static final String BREAKERURL="tcp://10.211.55.11:61616";
private static final String QUEUENAME="zuojie";
public static void main(String[] args) throws JMSException {
start();
}
public static void start() throws JMSException {
//獲取activeMQ 會話工廠
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD,BREAKERURL);
//創建activeMql連接
Connection connection= activeMQConnectionFactory.createConnection();
//開啓activeMQ連接
connection.start();
//jms設置消息的可靠性,自動簽收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//創建隊列
Queue queue = session.createQueue(QUEUENAME);
//創建一個消費者
MessageConsumer consumer = session.createConsumer(queue);
while (true) {
TextMessage textMessage = (TextMessage) consumer.receive();
if(textMessage!=null) {
System.out.println("我是消費者,內容" + textMessage.getText());
}else {
break;
}
}
//關閉session
session.close();
//關閉連接
connection.close();
}
}