1. 程式人生 > >MOM:訊息中介軟體

MOM:訊息中介軟體

點到點模型

點對點傳遞模型:生產者傳送訊息到一個特定的佇列(Queue)中,而消費者從一個訊息佇列中得到訊息,如下圖所示:

點對點模型的特點:

Ø  每條訊息有一個消費者

      每條只有一個消費者,如果一條訊息被訊息者接收,那麼其他的消費者就不能得到這條訊息了。

Ø 傳送和接受訊息與時間沒有關係

      也就是說,生產者在傳送訊息後,消費者可以在任意的時刻接收,但有兩個前提:

            1、訊息未過期

            2、訊息沒有被其他的使用者接收

      消費者也可以先執行,當生產者一執行,將訊息傳送到佇列中,消費者即可從佇列中獲得訊息,這叫“守株待兔“。

Ø  消費者必須確認對訊息的接收

      收到訊息後消費者必須確認訊息已被接收,否則JMS服務提供者會認為該訊息沒有被接收,那麼這條訊息仍然可以被其他人接收。程式可以自動進行確認,不需要人工干預。

Ø  非持久的訊息最多隻傳送一次

      非持久的訊息最多隻傳送一次,表示訊息有可能未被髮送,造成未被髮送的原因可能有:

            1、 JMS服務提供者出現宕機等情況,造成非持久資訊的丟失

            2、 佇列中的訊息過期,未被接收

Ø  持久的訊息嚴格傳送一次

      我們可以將比較重要的訊息設定為持久化的訊息,持久化後的訊息不會因為JMS服務提供者的故障或者其他原因造成訊息丟失。

釋出/訂閱模型

      釋出/訂閱模型:釋出/訂閱傳遞訊息型別與主題(Topic)有關。生產者釋出訊息,而消費者訂閱感興趣的訊息,生產者將訊息和一個特定的主題(Topic)連在一起,訊息傳遞系統(MOM)根據消費者註冊的興趣,將訊息傳遞給消費者。這種型別非常類似出版報紙、雜誌的形式,如下圖所示:

圖 4 釋出/訂閱通訊模型示意圖

釋出/訂閱模型的特點:

Ø  每個訊息都可以有多個(0,1,……)訂閱者

      每條訊息可以有多個消費者,如果報紙和雜誌一樣,誰訂閱了誰都可以獲得。

Ø  訂閱者只能消費他們訂閱之後出版的訊息

      這就要求訂閱者必須先訂閱,生產者再發布。即訂閱者必須先執行,再等待生產者的執行,這和點對點型別有所差異。

Ø  訂閱者必須保持為活動狀態才能使用這些訊息

      即訂閱者必須保持活動狀態等待發布者釋出的訊息,如果訂閱者在釋出者釋出訊息之後才執行,則不能獲得先前釋出者釋出的訊息。


相關推薦

MOM:訊息中介軟體

點到點模型 點對點傳遞模型:生產者傳送訊息到一個特定的佇列(Queue)中,而消費者從一個訊息佇列中得到訊息,如下圖所示: 點對點模型的特點: Ø  每條訊息有一個消費者       每條只有一個消費者,如果一條訊息被訊息者接收,那麼其他的消費者就不能得到這條訊息了。 Ø 傳送和接受訊息與時間沒

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

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

訊息中介軟體activeMQ(1)

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

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)是一種應用程式對應用程式的通訊方

訊息中介軟體(ActiveMQ RabbitMQ KafKa對比)

轉摘自:https://blog.csdn.net/vtopqx/article/details/76382934 1)TPS比較: Kafka最高,RabbitMq 次之, ActiveMq 最差。2)吞吐量對比: kafka具有高的吞吐量,內部採用訊息的批量處理,zero-copy機制,資料

螞蟻金服 java三面:metaQ訊息中介軟體 + GC演算法 + MySQL資料同步

一面: JVM資料儲存模型,新生代、年老代的構造? java GC演算法,什麼時候會觸發minor gc,什麼時候會觸發full gc? GC 可達性分析中哪些算是GC ROOT? 你熟悉的JVM調優引數,使用過哪些調優工具? Java 有什麼鎖型別?

《大型網站系統與JAVA中介軟體實踐》 第六章 訊息中介軟體

    如何保證一致性                     &

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

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

訊息中介軟體JMS

一.什麼是訊息中介軟體      訊息中介軟體利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分散式環境下擴充套件程序間的通訊。   ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。Acti