1.下載最新的activeMQ壓縮包,地址爲http://activemq.apache.org/activemq-5152-release.html
2.解壓壓縮包,找到bin目錄之下的win32/win64目錄下的activemq.bat進行啓動,也可點擊InstallService.bat 進行服務方式啓動啓動成功後瀏覽器打開http://127.0.0.1:8161/admin 輸入默認的賬號admin密碼admin即可,成功如圖:
3.創建java項目引入activemq-all-5.15.2.jar(mq解壓後第一級目錄之下)
4.active mq 分爲隊列模式和訂閱者模式以下我們以案例分別介紹
4.1之隊列模式
第一步:創建生產者
public class jmsProducer {
//默認連接用戶名
private static final String url = "tcp://127.0.0.1:61616";
//默認連接密碼
private static final String username = "admin";
//默認連接地址
private static final String password = "admin";
//隊列名稱
private static final String jmsName = "queue-test";
public static void main(String[] args) throws JMSException {
//1.創建連接工廠
ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url);
//2.得到連接
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4。創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.創建目標
Destination destination = session.createQueue(jmsName);
//6.創建生產者
MessageProducer producer = session.createProducer(destination);
//發送10條消息
for (int i = 0; i < 10; i++) {
TextMessage textMessage = session.createTextMessage("消息:"+i);
producer.send(textMessage);
System.out.println("已發送"+textMessage.getText());
}
connection.close();
}
}
右鍵運行完成之後進入瀏覽器查看如圖成功
第二步創建消費者
public class jmsCustomer {
//默認連接用戶名
private static final String url = "tcp://127.0.0.1:61616";
//默認連接密碼
private static final String username = "admin";
//默認連接地址
private static final String password = "admin";
//隊列名稱
private static final String jmsName = "queue-test";
public static void main(String[] args) throws JMSException {
//1.創建連接工廠
ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url);
//2.得到連接
Connection connection = connectionFactory.createConnection();
//3.啓動連接
connection.start();
//4。創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.創建目標
Destination destination = session.createQueue(jmsName);
//創建消費者
MessageConsumer customer = session.createConsumer(destination);
customer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
// TODO Auto-generated method stub
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("已接收:"+textMessage.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
右鍵運行完成後進入瀏覽器查看消息信息如圖成功
ps:如果我們同時開啓兩個消費者,當生產者發出消息後,兩個消費者以平均分配的方式共享資源
4.2之訂閱者模式
其實訂閱者模式與隊列模式,使用方法幾乎相似,只要改變會話牀建方式即可
//4。創建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ps:使用訂閱者模式必須先運行消費者進行消息的訂閱,然後生產者發出的消息才能接收到的到
如果創建兩個消費者,在訂閱者模式之下,當生產者發出消息後,兩個消費者均可收到所有消息
這也是隊列模式和消費者模式的一個重要的區別。