訊息中介軟體之RocketMQ

2021-10-04 07:40:13 字數 1512 閱讀 9774

1.rocketmq的三種方式傳送訊息:可靠的同步,可靠的非同步和單向傳輸:

(1)同步傳送訊息(可靠的同步傳輸,適用於重要的簡訊通知等)

(2)非同步傳輸通常用於響應時間敏感的業務場景。

(3)以單向模式傳送訊息(單向傳輸用於需要中等可靠性的情況,例如日誌收集。

2.初步了解訊息失敗重試機制

訊息失敗,無非涉及到2端:從生產者端發往mq的失敗;消費者端從mq消費訊息的失敗

(1)生產者設定重試:producer.setpretrytimeswhensendfailed(3);

生產者端的訊息失敗:比如網路抖動導致生產者傳送訊息到mq失敗。

上面**示例的處理手段是:如果該條訊息在1s內沒有傳送成功,那麼重試3次

(2)消費端的失敗重試

消費者端的失敗,分為2種情況,乙個是timeout,乙個是exception

timeout,比如由於網路原因導致訊息壓根就沒有從mq到消費者上,在rocketmq內部會不斷的嘗試傳送這條訊息,直至傳送成功為止!(比如集群中乙個broker失敗,就嘗試另乙個broker)

exception,訊息正常的到了消費者,結果消費者發生異常,處理失敗了。這裡涉及到一些問題,需要我們思考下,比如,消費者消費訊息的狀態有哪些定義?如果失敗,mq將採取什麼策略進行重試?假設一次性批量push了10條,其中某條資料消費異常,那麼訊息重試是10條呢,還是1條呢?而且在重試的過程中,需要保證不重複消費嗎?

訊息消費的狀態,有2種,乙個是成功(consume_success),乙個是失敗&稍後重試(reconsume_later)

注意了,對於消費訊息而言,存在2種指定的狀態(成功 or 失敗重試),如果一條訊息在消費端處理沒有返回這2個狀態,那麼相當於這條訊息沒有達到消費者,勢必會再次傳送給消費者!也即是訊息的處理必須有返回值,否則就進行重發。

3.集群消費 and 廣播消費

rocketmq的消費方式有2種,在預設情況下,就是集群消費,也就是訊息的負載均衡消費。另一種消費模式,是廣播消費。廣播消費,類似於activemq中的發布訂閱模式,訊息會發給consume group中的每乙個消費者進行消費

4.rocketmq結合spring配置實現

5.使用rocketmq的小細節:

訊息過濾/訂閱關係一致性/訊息重試/訊息冪等

6.rocketmq不同型別的消費者:

根據使用者對讀取操作的控制情況,分為兩種型別。乙個是defaultmqpushconsumer,由系統控制讀取操作,收到訊息後自動呼叫傳入的處理方法來處理;另乙個是defaultmqpullconsumer,讀取操作中的大部分功能由使用者自主控制。

訊息中介軟體 RocketMQ簡介

apache rocketmq是一款具有低延遲,高效能和可靠性,數十億容量和靈活可擴充套件性的分布式訊息傳遞和流 平台。它由nameserver broker producer以及consumer四部分構成,如下圖所示 所有的集群都具有水平擴充套件能力,無單點障礙。nameserver是乙個功能齊全...

訊息中介軟體認知及RocketMQ

訊息中介軟體是目前網際網路服務常用的技術服務。訊息中介軟體為應用系統提供高效 靈活的訊息同步和非同步傳輸處理 儲存 可靠傳輸。在大規模分布式環境下確保訊息安全 可靠 高效送達。一 為什麼需要一款訊息中介軟體 使用訊息伺服器的目的通常是解耦 及錯峰流控。隨著網際網路 微架構 模式的興起,原有的企業級大...

訊息中介軟體 rocketMq 1

1.nameserver vs zk,比zk簡單,效能比較高,幾十rocketmq的大腦 高效,i o儲存,檔案順序讀寫,記憶體對映機制 容忍設計缺陷,mq中訊息只消費一次 冪等性問題 rocketmq自身不確保,交給客戶端去做 2.nameserver 和broker之間保持著長連線,預設是128...