第一步:下載mq,win10安裝教程
www.baidu.com
1.啓動activemq,並進入網站 http://127.0.0.1:8161/,打開mq網站,可查看相關隊列信息
2.點擊 Manage ActiveMQ broker,登陸賬號密碼均爲 admin
第二步:idea創建maven工程,加入依賴如下:
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.14.4</version>
</dependency>
</dependencies>
第三步:編寫代碼塊,首先明確,activemq分兩大模式,主題模式和隊列模式,
一、隊列模式
1.編寫生產者代碼
public class AppProducer {
private static final String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
private static final String queue="queue-test";//隊列名字
public static void main(String[] args) throws JMSException {
//1.創建ConnectionFactory(連接工廠)
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2.創建connect(連接)
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4.創建會話,倆參數
Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.目的地,消息發送的地方
Destination destination = session.createQueue(queue);
//6.創建生產者,向目的地發送消息
MessageProducer producer = session.createProducer(destination);
//循環的發送消息
for(int i=0;i<100;i++){
//7.創建消息
TextMessage textMessage = session.createTextMessage("test"+i);
//8.發佈消息
producer.send(textMessage);
System.out.println("發送消息 = " + textMessage);
}
//9.關閉連接
connection.close();
}
}
2.編寫消費者代碼
public class AppConsumer {
private static final String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
private static final String queue="queue-test";//隊列名字
public static void main(String[] args) throws JMSException {
//1.創建ConnectionFactory(連接工廠)
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2.創建connect(連接)
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4.創建會話,倆參數
Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.目的地,消息發送的地方
Destination destination = session.createQueue(queue);
//6.創建消費者,去目的地取消息
MessageConsumer consumer = session.createConsumer(destination);
//7.消費者監聽消費信息,創建一個監聽器
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
System.out.println("接受消息 = " + textMessage);
}
});
//8.關閉連接
//connection.close();
}
}
二、主題模式
1.發佈者代碼
/**
* 主題模式 發佈者
*/
public class AppProducer {
private static final String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
private static final String topicName="topic-test";//隊列名字
public static void main(String[] args) throws JMSException {
//1.創建ConnectionFactory(連接工廠)
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2.創建connect(連接)
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4.創建會話,倆參數
Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.目的地,消息發送的地方
Destination destination = session.createTopic(topicName);
//6.創建生產者,向目的地發送消息
MessageProducer producer = session.createProducer(destination);
//循環的發送消息
for(int i=0;i<100;i++){
//7.創建消息
TextMessage textMessage = session.createTextMessage("test"+i);
//8.發佈消息
producer.send(textMessage);
System.out.println("發送消息 = " + textMessage);
}
//9.關閉連接
connection.close();
}
}
2.訂閱者代碼
/**
* 主題模式 訂閱者,必須要先訂閱(通俗點,就是要先啓動訂閱者,再啓動發佈者),發佈者發佈的消息(訂閱者)才能收到
*/
public class AppConsumer {
private static final String url="tcp://192.168.0.102:61616"; //61616是mq的默認端口
private static final String topicName="topic-test";//隊列名字
public static void main(String[] args) throws JMSException {
//1.創建ConnectionFactory(連接工廠)
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2.創建connect(連接)
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4.創建會話,倆參數
Session session= connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.目的地,消息發送的地方
Destination destination = session.createTopic(topicName);
//6.創建消費者,去目的地取消息
MessageConsumer consumer = session.createConsumer(destination);
//7.消費者監聽消費信息,創建一個監聽器
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
System.out.println("接受消息 = " + textMessage);
}
});
//8.關閉連接
//connection.close();
}
按照註釋裏一步一步地看就行了,簡單的使用就到此結束了。