rabbitMq使用心得

2021-10-07 14:16:40 字數 1924 閱讀 8145

producer broker vhost exchange queen customer

路由:更靈活,

許可權管理

高可用佇列

ttl:

exchange在和queue進行binding時會設定routingkey,這個routingkey是萬用字元

然後我們在將訊息傳送到exchange時會設定對應的routingkey,這個routingkey不是萬用字元

見下圖:1、例如傳送者:routingkey:first.green.fast,

2、對列和交換器binding:*.green.*、*.*.fast、*.*.fast

3、傳送訊息時,到交換器時,會匹配佇列繫結的萬用字元,確認當前佇列是否可以接受訊息

4、監聽訊息時,只需要設定queen、eachange,無需設定routingkey(待選項,用於初始化繫結),使用springboot的註解時,很容易混淆routingkey,切記

見:

direct 直連模式  即:==

topic  # *:萬用字元 主題模式  即:like

廣播基於amqp:高階訊息佇列協議,是乙個工作於應用層的協議

環境:springboot

監聽訊息

@rabbitlistener(bindings = )

發布訊息:

@autowired

private rabbittemplate rabbittemplate;

rabbittemplate.convertandsend(omsconstantsutil.exchange_oms_callback, omsconstantsutil.key_oms_callback, message);

高階應用:

延時佇列  (削峰)

死信佇列  : 可以實現延時佇列

比如:訊息超時,訊息被消費者拒絕並且未設定重回佇列、佇列達到最大長度,超過了 max length等

傳送端:服務端確認接收機制

事務模式:但吞吐量太低,同步阻塞模式

單條確認模式:

批量確認模式:先傳送,再確認  有風險

邊傳送,邊確認

路由保證:

路由到佇列

消費者消費環節:

自動ack

接收到資訊,就傳送ack

手動ack

channel:減少tcp連線,類似 連線池

vhost:分割槽,例如:local dev

無法被路由的訊息:直接丟棄

如何發給多個伺服器訊息

定義多個connectionfactory template listenercontainer

如何實現延遲佇列

ttl + 死信佇列

plugin外掛程式

如何提高消費速度

增加消費者

動態增加消費者

container

保證訊息的順序性

乙個佇列只有乙個消費者

大量訊息堆積

mq選型維度

1、使用 管理

2、 效能 併發 吞吐 訊息堆積

3、功能

4、可用  持久化 集群   

如何設計mq

首先 儲存、** 通訊協議 推或拉  等功能性需求

其次:高可用  等非功能需求

rabbitmq 使用心得

公司業務需要,要和其他公司進行協同開發,需要使用mq進行通訊,所以才會有此文章,總結踩過的坑。既然要使用rabbitmq,我們首先要知道什麼是rabbitmq。rabbitmq是乙個訊息 核心就是接受和傳送訊息。訊息傳送原理執行乙個任務可能需要花費幾秒鐘,你可能會擔心如果乙個消費者在執行任務過程中掛...

frameset 使用心得

欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...

Access使用心得

今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...