1. 程式人生 > >深入剖析訊息中介軟體

深入剖析訊息中介軟體

傳統的分散式物件呼叫應用廣泛,但面對複雜的分散式系統,顯示出一些侷限性,比如模組間耦合度較高,同步通訊延遲較高,訊息中介軟體是一箇中間層軟體。

一、訊息中介軟體主要的特點

1.可靠性基於訊息的通訊是可靠的,大多數訊息中介軟體都提供將訊息持久化到磁碟的功能,可以傳送離線訊息,訊息不會丟失。在分散式事務中擔當重要的角色。

2.非同步基於事件驅動架構,將呼叫非同步化

3.分散式:訊息中介軟體都是分散式的

4.高效的資料分發:高效的演算法,提高訊息的吞吐率以及高效的訊息投遞路由。

二、應用場景

1.系統整合
系統整合,除了可以通過介面,還可以通過訊息。兩者不同在於介面是模組間直接呼叫,而有訊息中介軟體的系統模組間通過訊息模組通訊,通過訊息分解系統。

2.降低系統耦合性
如果模組之間不存在直接呼叫,那麼修改或新增模組對其他模組影響最小增加訊息中介軟體後,業務模組僅需關注自己的業務邏輯和如何將訊息傳送給訊息伺服器訊息由中介軟體儲存和分發。B宕機不會影響A,B系統瓶頸也不會成為A的瓶頸也可以解決分散式事務問題。

直接介面呼叫存在的耦合(A調B):
對於A
1.儲存要傳送的訊息,防止A或B宕機,資訊丟失。
2.處理B的回撥資訊
對於B
1.設計介面通訊協議,整合同構或異構的系統。
2.考慮系統的伸縮性,B的瓶頸會成為A的瓶頸,如何擴充套件。
3.儲存回撥訊息,防止宕機造成訊息丟失。
4.處理成功後通知A
在分散式事務中,通過本地事務和訊息伺服器的配合,保證資料最終一致性。

3.改善系統性能
使用訊息的非同步呼叫,使用者請求的資料傳送給訊息佇列後立即返回,不用等接受者處理好資料,系統具有更好的響應延遲。在網站訪問的高峰,訊息中介軟體有一定的緩衝作用,減輕資料庫和後端儲存的負載壓力。

4.跨平臺,降低網路協議的複雜性

5.提高系統可用性
基於訊息的通訊是可靠的,訊息不會丟失。可以傳送事務性訊息,而且大多數訊息中介軟體都提供將訊息持久化到磁碟的功能

引入訊息中介軟體需要注意的地方

1.複雜性:訊息中介軟體都是分散式的,引入分散式會大大增加系統複雜度,在不同主機、不同程序之間的呼叫和除錯,會帶來更多的不穩定性。分散式系統還會增加對外部系統的依賴。即使自己的系統沒有問題,也可能會因為依賴系統出問題而導致系統不穩定。

2.非同步呼叫:帶來的業務互動的改變,有一定的操作延遲。
3. 同步呼叫:儘管訊息中介軟體也可用於同步呼叫,但這並不是它的長項,同步呼叫可以考慮使用HTTP、NIO等其他方式。

相關推薦

深入剖析訊息中介軟體

傳統的分散式物件呼叫應用廣泛,但面對複雜的分散式系統,顯示出一些侷限性,比如模組間耦合度較高,同步通訊延遲較高,訊息中介軟體是一箇中間層軟體。 一、訊息中介軟體主要的特點 1.可靠性:基於訊息的通訊是可靠的,大多數訊息中介軟體都提供將訊息持久化到磁碟的功能,可以傳送離線訊

ActiveMQ——訊息中介軟體深入學習

  訊息中間件概述 訊息中介軟體產生的背景 在客戶端與伺服器進行通訊時.客戶端呼叫後,必須等待服務物件完成處理返回結果才能繼續執行。  客戶與伺服器物件的生命週期緊密耦合,客戶程序和服務物件程序都都必須正常執行;如果由於服務物件崩潰或者網路故障導致使

訊息中介軟體剖析

本文首先從概念和應用場景對訊息中介軟體做總體描述,然後對幾種典型的訊息中介軟體從原理到實現進行分析和闡述,並進一步詳細介紹了基於JMS規範的訊息中介軟體。 什麼是訊息中介軟體 訊息中介軟體是一套系統(或平臺),用於應用程式之間進行通訊,系統通過訊息傳遞完成互動。 訊

Kafka or RabbitMQ:訊息中介軟體選型深入分析

一、前言 訊息佇列中介軟體(簡稱訊息中介軟體)是指利用高效可靠的訊息傳遞機制進行與平臺無關的資料交流,並基於資料通訊來進行分散

訊息中介軟體--RabbitMQ學習(一)

Activemq介紹 Activemq是 Apache出品,最流行的能力強勁的開源訊息匯流排,並且它個完全支援MS規範的訊息中介軟體。 其豐富的AP、多種叢集構建模式使得他成為業界老牌訊息中介軟體,在中小型企業中應用廣泛。 MQ衡量指標:服務效能、資料儲存、叢集架構

中介軟體系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中介軟體

以前的網路主要是客戶端與伺服器(C/S)結構或瀏覽器/伺服器(B/S)  形式的兩層結構,隨著企業資訊的不斷擴大,企業級應用不再滿足於簡單的兩層系統,而是向著三層和多層體系結構發展。中介軟體就是在其中加入一箇中間層,以支援更多的功能和服務。  一、什麼是中介軟體 &n

訊息中介軟體activeMQ(1)

開篇只是提出了訊息中間的定義,點對點、訂閱兩種模式下的訊息傳輸特點和AactiveMQ中訊息傳遞和接收的流程。 基本概念: MOM 就是面向訊息中介軟體(Message-oriented middleware),是用於以分散式應用或系統中的非同步、鬆耦合、可靠、可擴充套件和安全通訊的一類軟體

中介軟體系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中介軟體視訊教程網盤

中介軟體系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中介軟體視訊教程網盤39套Java架構師,高併發,高效能,高可用,分散式,叢集,電商,快取,微服務,微信支付寶支付,公眾號開發,java8新特性,P2P金融專案,程式設計,功能設計,資料庫設計,第

RabbitMQ訊息中介軟體技術精講無密完結版

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

交易環節訊息中介軟體設計——去哪兒餘昭輝

交易環節訊息中介軟體 問題考慮 不能丟訊息 丟訊息意味著掉單,意味著支付成功但是沒給人家出票,這是不能接受的。 穩定 訊息中介軟體一旦出問題,交易不能進行,也是嚴重的故障。 效能 典型的訊息中介軟體包含 3 部分 producer(釋出者)、broker(訊息中

訊息中介軟體(一)分散式系統事務一致性解決方案大對比,誰最好使?(轉)

原文轉載至:https://blog.csdn.net/lovesomnus/article/details/51785108   在分散式系統中,同時滿足“一致性”、“可用性”和“分割槽容錯性”三者是不可能的。分散式系統的事務一致性是一個技術難題,各種解決方案孰優孰劣? 在OLTP系統領域,

(六) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送和獲取 Topic 型別訊息

文章目錄 前言 回顧 Queue 型別訊息的傳送和請求過程 ActiveMQTopic 和 JmsTemplate Topic 型別訊息的特性

(五) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 獲取 Queue 型別訊息

文章目錄 前言 為什麼不將傳送和接收寫到同一篇文章中? 傳送和接收的聯絡和區別-本質上是對某一個 ActiveMQQueue 的操作 讀取 Queue 中的訊息

(四) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送 Queue 型別訊息

文章目錄 前言 傳送類的編寫 建立 類 JmsTemplateQueueProduct 方法一 send 方法二 convertAndS

(二) 訊息中介軟體——ActiveMQ 安裝和啟動

文章目錄 ActiveMQ 有眾多版本 ActiveMQ 支援多個平臺 解壓即安裝 認識預設的兩個埠 啟動 ActiveMQ 訪問 Active

【轉】【選型】【MQ】訊息中介軟體對比

https://blog.csdn.net/huayushuangfei/article/details/80866642    訊息中介軟體對比 為什麼選擇RocketMQ 價效比,社群活躍度  價效比之“性”:  效能:阿里支撐,經受住淘寶,

憑什麼說AMQP比JMS優秀啊?JMS才是真正實現了一個客戶端呼叫多種產品的訊息中介軟體

一、AMQP 歷史​ 訊息佇列(Message Queue)起源於一位來自 MIT 的硬體設計教育工作者 Vivek Ranadivé 設想了一種通用軟體匯流排,就像主機板上的匯流排那樣,供其他應用程式接入。Vivek在1983年成立了 Teknekron,高盛等公司作為第一批使用者再金融交易中採用了 Tek

為什麼你要使用這麼強大的分散式訊息中介軟體——kafka

為什麼是kafka? 在我們大量使用分散式資料庫、分散式計算叢集的時候,是否會遇到這樣的一些問題: 我們想分析下使用者行為(pageviews),以便我們設計出更好的廣告位 我想對使用者的搜尋關鍵詞進行統計,分析出當前的流行趨勢 有些資料,儲存資料庫浪費,直接儲存硬碟效率又低

RabbitMQ(訊息中介軟體)在工作中的應用場景

  RabbitMQ(訊息中介軟體)在工作中的應用場景  1、跨系統的非同步通訊,所有需要非同步互動的地方都可以使用訊息佇列。就像我們除了打電話(同步)以外,還需要發簡訊,發電子郵件(非同步)的通訊方式。   2、多個應用之間的耦合,由於訊息是平臺無關和語言

ActiveMQ訊息中介軟體入門學習

同步通訊:客戶端向伺服器端發出請求,並一直等待伺服器端的響應。直到獲取到伺服器端返回的響應資訊,客戶端才能繼續執行。 MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方