《命運2:邪姬魅影》全新13分鐘前瞻視訊展示豐富內容
阿新 • • 發佈:2022-02-08
RabbitMQ
基本物件
- producer
- channel
- 多個相互隔離
- exchange(交換機)
- Fanout
- Direct
- Headers
- Topic
- queue
- consumer
工作模式
-
work queues
- graph LR p -->x -->q q -->c1 q -->c2
-
訊息不會被重複消費
-
適用於消費速度慢,需要多個消費者
-
publish/subscribe
-
exchange為fanout 模式
- graph LR p -->x x -->q1 -->c1 x -->q2 -->c2
-
一條訊息會多個消費者同時消費
-
如:下完訂單後,郵件通知使用者同時簡訊通知使用者
-
-
Routing
-
exchange為direct 模式
-
根據routing key傳送到對應的queue,如果綁定了多個queue那麼會都發送
-
routing key繫結在queue上
-
可取代【釋出/訂閱】模式(不同的queue上繫結同樣的routing key),更強大
-
-
Topics(萬用字元)
-
exchange為Topic 模式
-
Routing的高階版本,Routing是等於,Topics是萬用字元(# or *)
-
#能匹配一個或多個(每個詞中間以.分隔)
-
*只能匹配一個
-
如:下完訂單後,有的想只接收簡訊,有的想只接收email,有的想全部接收
- routing key : inform.#.email.#
-
-
Header
- exchange為headers 模式
- 沒有routing key,使用key/value
- 不常用
-
RPC
-
exchange為direct 模式
-
客戶端遠端呼叫服務端方法,使用MQ實現RPC的非同步呼叫
-
graph LR
p -->queue1 -->c
c -->queue2 -->p
- client傳送一條請求訊息在佇列中
- server處理好後,傳送一條回覆訊息在另一個佇列中
- client收到 即完成了非同步呼叫
-
實現步驟
- 建立連線
- 建立channel
- 宣告queue
- 宣告exchange (設定型別)
- 繫結queue (設定routing key)
- 釋出 Basic Publish(指定exchange、routing key、訊息體)
- 訂閱 Basic Consume (指定queue、繫結具體的consumer)