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...