1. 程式人生 > >Dubbo高階篇_01_訊息中介軟體在分散式架構的作用和介紹

Dubbo高階篇_01_訊息中介軟體在分散式架構的作用和介紹

訊息中介軟體的定義
Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed systems.
訊息中介軟體是在分散式系統中完成訊息的傳送和接收的基礎軟體。


訊息中介軟體的作用

訊息中介軟體可利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息排隊模型,可以在分散式環境下擴充套件程序間的通訊。

通過訊息中介軟體,應用程式或元件之間可以進行可靠的非同步通訊

,從而降低系統之間的耦合度,提高系統的可擴充套件性和可用性。

應用程式A與應用程式B通訊使用訊息通訊,可以非同步通訊,即應用程式A不管應用B是否正常,只要訊息中介軟體是正常的就OK了,如果應用程式B不正常,訊息中介軟體會把應用程式A發給應用程式B的訊息先快取起來,等應用程式B正常,再交給應用程式B處理,此也可以解決分散式事務問題。


不使用訊息中介軟體的分散式中得同時呼叫好多個服務,也依賴多個服務,耦合度高,同樣,串聯下的業務,可能存在等待時間,出現異常,資料的一致性很難保證

訊息中介軟體在分散式系統中的作用介紹
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(訊息)---------------------- 是在消費者和生產者之間傳送的物件。

JMS訊息模型

1.點對點或佇列模型


JMS點對點佇列模型特點:

1、訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息

2、訊息被消費以後,queue中再有的儲存,所以訊息消費者不可能消費到已被消費的訊息。

3.Queue支援存在多個消費者,但是對一個訊息而言,只會有一個消費者可以消費

JMS訊息模型

釋出者/訂閱者模型


JMS 釋出/訂閱模型特點

訊息生產者(釋出)將消費發到topic中,同時有個多個訊息消費者(訂閱)消費該訊息

釋出到topic的訊息會被所有訂閱者消費

實現了JMS規範的訊息中介軟體產品

ActiveMQ、RocketMQ、RabbitMQ、HornetQ.....

MQ對比與選擇

相關推薦

Dubbo高階_01_訊息中介軟體分散式架構作用介紹

訊息中介軟體的定義 Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed syst

Dubbo+Zookeeper架構高階16—訊息中介軟體分散式系統中的作用介紹

一、訊息中介軟體的定義        Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distribute

什麼是訊息中介軟體?主要作用是什麼?

在瞭解中介軟體之前,我們先了解一下什麼是同步? 首先我們想一下,兩個公司之間如果有互相呼叫介面的業務需求,如果沒有引入中介軟體技術,是怎麼實現的呢? 使用者發起請求給系統A,系統A接到請求直接呼叫系統B,系統B返回結果後,系統A才能返回結果給使用者,這種模式就是同步呼叫。   所謂同步呼叫就是各

Dubbo+Zookeeper架構高階17—Linux安裝ActiveMQ訊息中介軟體

IP:192.168.126.131   環境:CentOS 6.6、JDK8 1、 安裝 JDK 並配置環境變數(略) JAVA_HOME=/usr/local/java/jdk1.8.0_72  2、 下載 Linux 版的 ActiveMQ(當前最新版 apach

分散式訊息中介軟體 RocketMQ:概述與原始碼編譯

一、前言 Apache RocketMQ 是一個分散式訊息中介軟體,其具有低延遲、高效能和可靠性、萬億級容量、靈活的可擴充套件性特性;它是阿里巴巴在2012年開源的分散式訊息中介軟體,目前已經捐贈給 Apache 軟體基金會,並於2017年9月25日成為 Apache 的頂級專案。 二、Roc

基於Dubbo分散式系統架構(二)-訊息中介軟體分散式系統中的作用介紹

一、訊息中介軟體的定義        Message-orientedmiddleware (MOM) is software infrastructure focused on sending a

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

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

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

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

Java架構-spring+springmvc+kafka分散式訊息中介軟體整合方案

Honghu的訊息服務平臺已經拋棄了之前的ActiveMQ,改用高吞吐量比較大的Kafka分散式訊息中介軟體方案: kafka訊息平臺使用spring+kafka的整合方案,詳情如下: 使用最高版本2.1.0.RELEASE整合jar包:spring-integration

分散式架構分散式訊息中介軟體MQ開發教程

關於分散式訊息中介軟體MQ的詳細介紹: 【分散式架構】分散式訊息中介軟體MQ開發教程 (阿里雲訊息佇列MQ(Message Queue)是企業級網際網路架構的核心產品,服務於整個阿里巴巴集團已超過8年,經過阿里巴巴交易核心鏈路反覆打磨與歷年雙十一嚴苛考驗,是一個真正具備低延遲、高併發、高可用

分散式事務之——基於訊息中介軟體實現

 環境需求:假如某人有5個女朋友(有點複雜),每天晚上都會給他的女朋友打電話說晚安,那麼每給一個女朋友打電話,其他女朋友都要進入等待狀態。一個一個打下去。。。等打到最後一個已經是凌晨了,對方都睡了。那麼有什麼辦法可以解決呢?此時這個人可以利用微信公眾號將自己甜言蜜語放進公眾號

訊息中介軟體--RabbitMQ學習(十七)---高階特性之死信佇列

死信佇列:DLX,Dead- Letter- Exchange 利用DLX,當訊息在一個佇列中變成死信( dead message)之後它能被重新 publish到另一個 Exchange,這個 Exchange就是DLX 死信佇列訊息變成死信有一下幾種情況

更多免費初級中級高階大資料java視訊教程下載 加(微***信((號keepper,請備註java或掃下面2二3維4碼rabbitmq訊息中介軟體視訊

更多免費初級中級高階大資料java視訊教程下載 加(微***信((號keepper,請備註java或掃下面2二3維4碼rabbitmq訊息中介軟體視訊java視訊教程01-訊息中介軟體介紹及特點講解_rec.mp4java視訊教程02-訊息服務傳遞模型及各自的特點詳解_rec.mp4java視訊教程03-訊息

【陌上軒客】技術領域:涉獵Java、Go、Python、Groovy 等語言,高效能、高併發、高可用、非同步與訊息中介軟體、快取與資料庫、分散式與微服務、容器自動化等領域; 興趣愛好:籃球,騎行,讀書,發呆; 職業規劃:勵志成為一名出色的伺服器端系統架構師。

陌上軒客 技術領域:涉獵Java、Go、Python、Groovy 等語言,高效能、高併發、高可用、非同步與訊息中介軟體、快取與資料庫、分散式與微服務、容器和自動化等領域; 興趣愛好:籃球,騎行,讀書,發呆; 職業...

訊息中介軟體—RabbitMQ(叢集原理與搭建)

一般來說,如果只是為了學習RabbitMQ或者驗證業務工程的正確性那麼在本地環境或者測試環境上使

訊息中介軟體分散式系統中的作用介紹

一、訊息中介軟體的定義        Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmess

VIP4.0-MQ訊息中介軟體分散式系統中的作用

1.訊息中介軟體在分散式系統中的作用介紹 訊息中介軟體是在分散式系統中完成訊息的傳送和接收的基礎軟體。 1.1訊息中介軟體可利用高效可靠的訊息傳遞機制進行平臺無關的資料交流, 並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息 排隊模型,可以在分散式環境下擴充套件程序間的通訊。 通過訊

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

在分散式系統中,同時滿足“一致性”、“可用性”和“分割槽容錯性”三者是不可能的。分散式系統的事務一致性是一個技術難題,各種解決方案孰優孰劣? 在OLTP系統領域,我們在很多業務場景下都會面臨事務一致性方面的需求,例如最經典的Bob給Smith轉賬的案例。傳統的企業開發,

分散式訊息中介軟體(六)——Kafka核心元件詳解

一、Kafka釋出訂閱訊息系統基礎      Kafka 是分散式釋出-訂閱訊息系統。它最初由 LinkedIn 公司開發,使用 Scala語言編寫,之後成為 Apache 頂級專案框架。Kafka

分散式訊息中介軟體(四)——Flume+Kafka+Storm+Redis生態架構實戰

一、Kafka專案應用架構分析 1、Kafka生態架構        資料收集的速度,跟處理的速度不一定一致,故使用Kafka中介軟體作為資料收集和資料處理的一個Access入口,接收flume收集的資料,並通過kafkaSpout提交給Storm進行處理。 2、kafka