消息中間件在分佈式系統中的做用介紹服務器
消息中間件的定義併發
Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed systems. 框架
消息中間件是在分佈式系統中完成消息的發送和接收的基礎軟件。異步
消息中間件在分佈式系統中的做用介紹 分佈式
消息中間件的做用 學習
消息中間件可利用高效可靠的消息傳遞機制進行平臺無關的數據交流, 並基於數據通訊來進行分佈式系統的集成。經過提供消息傳遞和消息 排隊模型,能夠在分佈式環境下擴展進程間的通訊。 spa
經過消息中間件,應用程序或組件之間能夠進行可靠的異步通信,從而 下降系統之間的耦合度,提升系統的可擴展性和可用性。線程
應用場景 中間件
經過使用消息中間件對Dubbo服務間的調用進行解耦對象
JMS (Java Message Service)
JMS是JavaEE中的一個關於消息的規範,是一套與具體平臺無關的API。
JMS元素
JMS提供者 ---- 鏈接面向消息中間件的,JMS接口的一個實現。
JMS客戶 ------ 生產或消費消息的基於Java的應用程序或對象。
JMS生產者 ---- 建立併發送消息的JMS客戶。
JMS消費者 ---- 接收消息的JMS客戶。
JMS消息 ------ 能夠在JMS客戶之間傳遞的數據的對象
JMS隊列 ------ 一個容納那些被髮送的等待閱讀的消息的區域。
JMS主題 ------ 一種支持發送消息給多個訂閱者的機制。
JMS應用程序接口
ConnectionFactory(鏈接工廠)------ 用戶用來建立到JMS提供者的鏈接的被管對象。
Connection(鏈接)------------------- 鏈接表明了應用程序和消息服務器之間的通訊鏈路。
Destination(目標)------------------- 消息發佈和接收的地點,或者是隊列,或者是主題。
MessageProducer(消息生產者)----- 由會話建立的對象,用於發送消息到目標。
MessageConsumer(消息消費者)---- 由會話建立的對象,用於接收發送到目標的消息。
Message(消息)---------------------- 是在消費者和生產者之間傳送的對象。
Session(會話)------------------------ 表示一個單線程的上下文,用於發送和接收消息。
JMS消息模型
一、點對點或隊列模型
JMS 點對點隊列模型特色:
一、消息生產者生產消息發送到queue中,而後消息消費者從queue中取出而且消費消息。
二、消息被消費之後,queue中再也不有存儲,因此消息消費者不可能消費到已經被消費的消息。
三、Queue支持存在多個消費者,可是對一個消息而言,只會有一個消費者能夠消費。
二、發佈者/訂閱者模型
JMS 發佈/訂閱模型特色:
消息生產者(發佈)將消息發佈到topic中,同時有多個消息消費者(訂閱)消費該消息。
發佈到topic的消息會被全部訂閱者消費。
實現了JMS規範的消息中間件產品 ActiveMQ、RocketMQ、RabbitMQ、HornetQ
請各位持續關注《跟我學習dubbo-ActiveMQ的安裝與使用(9)》
1. 項目核心代碼結構截圖
項目模塊依賴
特別提醒:開發人員在開發的時候能夠將本身的業務REST服務化或者Dubbo服務化
2. 項目依賴介紹
2.1 後臺管理系統、Rest服務系統、Scheculer定時調度系統依賴以下圖:
2.2 Dubbo獨立服務項目依賴以下圖:
3. 項目功能部分截圖:
zookeeper、dubbo服務啓動
dubbo管控臺
REST服務平臺