1.什麼是消息中間件
消息中間件利用高效可靠的消息傳遞機制進行平台無關的資料交流,并基于資料通信來進行分布式系統的內建。通過提供消息傳遞和消息排隊模型,它可以在分布式環境下擴充程序間的通信。對于消息中間件,常見的角色大緻也就有Producer(生産者)、Consumer(消費者)
-
常見的消息中間件産品:
(1)ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實作。我們在本次課程中介紹 ActiveMQ的使用。
(2)RabbitMQ AMQP協定的上司實作,支援多種場景。淘寶的MySQL叢集内部有使用它進行通訊,OpenStack開源雲平台的通信元件,最先在金融行業得到運用。
(3)ZeroMQ 史上最快的消息隊列系統
(4)Kafka Apache下的一個子項目特點:高吞吐,在一台普通的伺服器上既可以達到10W/s的吞吐速率;完全的分布式系統。适合處理海量資料。
2.應用場景
比如:網上購物通過快遞郵寄,你不一定随時随地都能取上快遞,比如你寫的是家庭位址不一定24小時都在家,快遞員給你送貨
第一種情況:
快遞員等你到家在送
第二種情況:
快遞可以放到你樓下的超市
第三種情況:
放到小區快遞櫃
快遞員不能等你回家,在給你送貨,這就是消息中間件解決的生活問題
*
解決系統子產品異步調用, 改善系統子產品調用關系、減少子產品之間的耦合一種解決方案----消息中間件
3.什麼時候使用消息中間件
執行過程比較長,不需要傳回值的情況下。
4.JMS
許多廠商目前都支援 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,這隻是幾個例子。 JMS 使您能夠通過消息收發服務(有時稱為消息中介程式或路由器)從一個 JMS 客戶機向另一個 JML 客戶機發送消息。消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由資訊以及有關該消息的中繼資料組成。消息主體則攜帶着應用程式的資料或有效負載。
JMS 定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送并接收以一些不同形式的資料,提供現有消息格式的一些級别的相容性。
- TextMessage–一個字元串對象
- MapMessage–一套名稱-值對
- ObjectMessage–一個序列化的Java 對象 ·
- BytesMessage–一個位元組的資料流 ·
-
StreamMessage – Java 原始值的資料流
JMS消息傳遞類型
對于消息的傳遞有兩種類型:
- 點對點的,即一個生産者和一個消費者一一對應;
- 釋出/ 訂閱模式,即一個生産者産生消息并進行發送後,可以由多個消費者進行接收。
5.ActiveMQ
- 下載下傳 官方網站下載下傳:http://activemq.apache.org/
-
安裝(Linux)
(1)将apache-activemq-5.12.0-bin.tar.gz 上傳至伺服器
alt+p鍵
(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)假設伺服器位址為192.168.2.100 ,打開浏覽器輸入位址
http://192.168.2.100:8161/ 即可進入ActiveMQ管理頁面
(6)點選進入管理頁面
輸入使用者名和密碼 均為 admin
(7)點對點消息清單: