日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业级实战01_ActiveMQ 下载、安装、运行、实战需求

發布時間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业级实战01_ActiveMQ 下载、安装、运行、实战需求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ActiveMQ 下載、安裝、運行、實戰需求

文章目錄

  • 一、ActiveMQ簡介
    • 1. 什么是ActiveMQ?
    • 2. ActiveMQ能干什么?
    • 3. ActiveMQ特點
    • 4. MOM基本功能
    • 5. MOM主要特點
    • 6. MOM的應用場景_前
    • 7. MOM的應用場景_后
  • 二、ActiveMQ下載/安裝
    • 2.1 ActiveMQ下載
    • 2.2 ActiveMQ安裝環境(jdk)
    • 2.3 ActiveMQ 解壓縮/運行
    • 2.4 ActiveMQ目錄介紹
    • 2.5 ActiveMQ后臺頁面
  • 三、ActiveMQ消息形式
    • 3.1. 點對點(Point-to-Point)
    • 3.2. 廣播TOPIC(publish-subscribe)
  • 四、ActiveMQ消息類型
  • 五、基礎創建流程+代碼構建
    • 5.1. MQ基礎流程總覽
    • 5.2. MQ_點對點_代碼案例
      • 5.2.1. MQ_點對點_生產者_圖示
      • 5.2.2. MQ_點對點_生產者_代碼
      • 5.2.3. MQ_點對點_消費者_圖示
      • 5.2.4. MQ_點對點_消費者_代碼
    • 5.3. MQ_TOPIC_代碼案例
      • 5.3.1. MQ_廣播_生產者_圖示
      • 5.3.2. MQ_廣播_生產者_代碼
      • 5.3.3. MQ_廣播_生產者_圖示
      • 5.3.4. MQ_廣播_生產者_代碼
  • 六、實戰ActiveMQ
    • 6.1. 解壓ActiveMQ/附目錄權限/啟動
    • 6.2. 關閉防火墻或者開放8161端口(任選1種)
      • 6.2.1. 關閉防火墻
      • 6.2.2. 開放8161端口
    • 6.3. 登錄后臺
  • 七、點對點_實戰發送/接收消息_場景01
    • 7.1. 創建一個maven項目
    • 7.2. 引入依賴
    • 7.3. 創建一個點對點的生產者
    • 7.4. 創建一個點對點的消費者
    • 7.5. 啟動生產者
      • 7.5.1. 運行main方法即可
      • 7.5.2. Connection timed out: connect
      • 7.5.3. 解決方案
      • 7.5.4. 再次啟動項目
      • 7.5.5. 查看MQ控制臺
      • 7.5.6. MQ名稱講解
    • 7.6. 啟動消費者
  • 八、點對點_實戰發送/接收消息_場景2
    • 8.1. 啟動一個生產者,投遞一次消息
    • 8.2. 啟動消費者1號
    • 8.3. 啟動消費者2號
    • 8.3. 現象分析/總結
    • 8.4. 總結
    • 8.5. 效果圖:
  • 九、廣播_實戰發送/接收消息_場景02
    • 9.1. 創建一個topic的生產者
    • 9.2. 創建一個topic的消費者
    • 9.3. 啟動一個生產者
    • 9.4. 登錄后臺查看
    • 9.5. 數據展示
    • 9.6. 啟動消費者1號和消費者2號
    • 9.7. 結果分析
    • 9.8. topic 廣播形式,如果先啟動生產者在啟動消費者,消息失效會丟失
    • 9.9. 再次測試
  • 十、總結歸納

一、ActiveMQ簡介

1. 什么是ActiveMQ?

2. ActiveMQ能干什么?

3. ActiveMQ特點


4. MOM基本功能

5. MOM主要特點

6. MOM的應用場景_前

7. MOM的應用場景_后

二、ActiveMQ下載/安裝

2.1 ActiveMQ下載

官網鏈接:http://activemq.apache.org/download.html


2.2 ActiveMQ安裝環境(jdk)

2.3 ActiveMQ 解壓縮/運行

2.4 ActiveMQ目錄介紹

2.5 ActiveMQ后臺頁面

三、ActiveMQ消息形式

3.1. 點對點(Point-to-Point)

3.2. 廣播TOPIC(publish-subscribe)

四、ActiveMQ消息類型

五、基礎創建流程+代碼構建

5.1. MQ基礎流程總覽


5.2. MQ_點對點_代碼案例

5.2.1. MQ_點對點_生產者_圖示

5.2.2. MQ_點對點_生產者_代碼

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class QueueProducer {public static void main(String[] args) throws JMSException {//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建隊列對象Queue queue = session.createQueue("test-queue");//6.創建消息生產者對象MessageProducer producer = session.createProducer(queue);//7.創建消息對象(文本消息)TextMessage textMessage = session.createTextMessage("歡迎來到神奇的gblfy世界");//8.發送消息producer.send(textMessage);//9.關閉資源producer.close();session.close();connection.close();} }

5.2.3. MQ_點對點_消費者_圖示

5.2.4. MQ_點對點_消費者_代碼

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class QueueConsumer {public static void main(String[] args) throws JMSException, IOException {//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建隊列對象Queue queue = session.createQueue("test-queue");//6.創建消息消費者對象MessageConsumer consumer = session.createConsumer(queue);//7.設置監聽consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage=(TextMessage)message;try {System.out.println("提取的消息:"+ textMessage.getText() );} catch (JMSException e) { e.printStackTrace();}}});//8.等待鍵盤輸入System.in.read();//9.關閉資源consumer.close();session.close();connection.close();}}

5.3. MQ_TOPIC_代碼案例

5.3.1. MQ_廣播_生產者_圖示

5.3.2. MQ_廣播_生產者_代碼

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; /*** 發布訂閱模式(消息生產者)* @author gblfy**/ public class TopicProducer {public static void main(String[] args) throws JMSException {//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建主題對象Topic topic = session.createTopic("test-topic"); //6.創建消息生產者對象MessageProducer producer = session.createProducer(topic);//7.創建消息對象(文本消息)TextMessage textMessage = session.createTextMessage("歡迎來到申請的品優購世界");//8.發送消息producer.send(textMessage);//9.關閉資源producer.close();session.close();connection.close();}}

5.3.3. MQ_廣播_生產者_圖示

5.3.4. MQ_廣播_生產者_代碼

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class TopicConsumer {public static void main(String[] args) throws JMSException, IOException {//1.創建連接工廠ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建主題對象Topic topic = session.createTopic("test-topic");//6.創建消息消費者對象MessageConsumer consumer = session.createConsumer(topic);//7.設置監聽consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("提取的消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});//8.等待鍵盤輸入System.in.read();//9.關閉資源consumer.close();session.close();connection.close();} }

六、實戰ActiveMQ

6.1. 解壓ActiveMQ/附目錄權限/啟動

  • (1)將apache-activemq-5.12.0-bin.tar.gz 上傳至服務器
  • (2)解壓此文件
tar zxvf apache-activemq-5.12.0-bin.tar.gz
  • (3)為apache-activemq-5.12.0目錄賦權
chmod 777 apache-activemq-5.12.0
  • (4)進入apache-activemq-5.12.0\bin目錄
  • (5)賦與執行權限
chmod 755 activemq
  • (6)啟動mq
./activemq start

6.2. 關閉防火墻或者開放8161端口(任選1種)

6.2.1. 關閉防火墻

/etc/init.d/iptables stop

6.2.2. 開放8161端口

vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT :wq service iptables restart service iptables status



6.3. 登錄后臺

七、點對點_實戰發送/接收消息_場景01

7.1. 創建一個maven項目




7.2. 引入依賴

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.gblfy.jms</groupId><artifactId>jmsDemo</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-client</artifactId><version>5.13.4</version></dependency></dependencies></project>

7.3. 創建一個點對點的生產者

//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建隊列對象Queue queue = session.createQueue("test-queue");//6.創建消息生產者對象MessageProducer producer = session.createProducer(queue);//7.創建消息對象(文本消息)TextMessage textMessage = session.createTextMessage("歡迎來到神奇的gblfy世界");//8.發送消息producer.send(textMessage);//9.關閉資源producer.close();session.close();connection.close();}

7.4. 創建一個點對點的消費者

//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建隊列對象Queue queue = session.createQueue("test-queue");//6.創建消息消費者對象MessageConsumer consumer = session.createConsumer(queue);//7.設置監聽consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage=(TextMessage)message;try {System.out.println("提取的消息:"+ textMessage.getText() );} catch (JMSException e) { e.printStackTrace();}}});//8.等待鍵盤輸入System.in.read();//9.關閉資源consumer.close();session.close();connection.close();}

7.5. 啟動生產者

7.5.1. 運行main方法即可

7.5.2. Connection timed out: connect

7.5.3. 解決方案

  • 關閉防火墻,或者開放61616端口
    過程上面一樣,如果開發防火墻,記得要重啟防火墻!!!
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT

7.5.4. 再次啟動項目

7.5.5. 查看MQ控制臺

  • 點擊Queues


    發現消息已經成功發送成功!!!

7.5.6. MQ名稱講解

  • ① 隊列名
  • ② 未消費消息數量
  • ③ 活躍的消費者數量
  • ④ 一共投遞消息總量
  • ⑤消費消息數量
  • ⑥ atom,可以查看具體消息
  • ⑦ 刪除消息按鈕

7.6. 啟動消費者


消費者已經成功接收到投遞的消息
查看后臺MQ后臺:

名稱數量
未消費的消息0
活躍消費者1
消息投遞總量1
已經消費消息1

八、點對點_實戰發送/接收消息_場景2

8.1. 啟動一個生產者,投遞一次消息

啟動一個生產者,投遞一次消息,啟動2個消費者

8.2. 啟動消費者1號

8.3. 啟動消費者2號

8.3. 現象分析/總結

只有消費者2號,接收到生產者投遞的消息

8.4. 總結

不管有多少消費者,消息只能被一個接收,消費了也就沒了,先來先得

8.5. 效果圖:

名稱數量
隊列1
未消費消息0
活躍消費者2
投遞消息總量2
消費消息數量2

注:此次測試建立在剛才第一次測試基礎上
正常如下:

名稱數量
隊列1
未消費消息0
活躍消費者2
投遞消息總量1
消費消息數量1

九、廣播_實戰發送/接收消息_場景02

9.1. 創建一個topic的生產者

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; /*** 發布訂閱模式(消息生產者)* @author gblfy**/ public class TopicProducer {public static void main(String[] args) throws JMSException {//1.創建連接工廠ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建主題對象Topic topic = session.createTopic("test-topic"); //6.創建消息生產者對象MessageProducer producer = session.createProducer(topic);//7.創建消息對象(文本消息)TextMessage textMessage = session.createTextMessage("歡迎來到申請的品優購世界");//8.發送消息producer.send(textMessage);//9.關閉資源producer.close();session.close();connection.close();}}

9.2. 創建一個topic的消費者

package com.gblfy.jms;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class TopicConsumer {public static void main(String[] args) throws JMSException, IOException {//1.創建連接工廠ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.135:61616");//2.創建連接Connection connection = connectionFactory.createConnection();//3.啟動連接connection.start();//4.獲取session(會話對象) 參數1:是否啟動事務 參數2:消息確認方式Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.創建主題對象Topic topic = session.createTopic("test-topic");//6.創建消息消費者對象MessageConsumer consumer = session.createConsumer(topic);//7.設置監聽consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("提取的消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});//8.等待鍵盤輸入System.in.read();//9.關閉資源consumer.close();session.close();connection.close();} }

9.3. 啟動一個生產者

9.4. 登錄后臺查看


9.5. 數據展示

名稱數量
活躍消費者數量0
消息投遞總量1
已消費消息0

9.6. 啟動消費者1號和消費者2號


9.7. 結果分析

發現消費者1號和消費者2號都沒有接收到消息

9.8. topic 廣播形式,如果先啟動生產者在啟動消費者,消息失效會丟失

因此,需要先啟動消費者在啟動生產者,再啟動生產者。

9.9. 再次測試



從截圖中可以看出,生產者投遞一次消息,2個消費者都可以接收到消息

十、總結歸納

MQ的需要根據應用的業務場景,選擇不同的消息投遞方式,一次的選擇點對點,消息同一個,有多個消費者的選擇廣播形式。

總結

以上是生活随笔為你收集整理的企业级实战01_ActiveMQ 下载、安装、运行、实战需求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。