訊息中介軟體學習筆記 RabbitMQ(二 模式)

2021-09-25 08:31:23 字數 1434 閱讀 4059

amqp,即 advanced message queuing protocol,高階訊息佇列協議,是應用層協議的乙個開放標準,為面向訊息的中介軟體設計。訊息中介軟體主要用於元件之間的解耦,訊息的傳送者無需知道訊息使用者的存在,反之亦然。amqp 的主要特徵是面向訊息、佇列、路由(包括點對點和發布/訂閱)、可靠性、安全。

rabbitmq 是乙個開源的 amqp 實現。

與 activemq 拿到訊息就直接放在佇列等待消費者拿走不同, rabbit 拿到訊息之後,會先交給 交換機 (exchange), 然後交換機再根據預先設定的不同繫結( bindings )策略,來確定要發給哪個佇列。

如圖所示,比起 activemq 多了 exchange 和 bindings。

正式由於有了 exchange 和 bindings, rabbitmq 就可以靈活地支撐各種模式。

交換機有四種模式:direct, topic, headers and fanout

.direct:direct 型別的行為是」先匹配, 再投送」. 即在繫結時設定乙個 routing_key, 訊息的routing_key 匹配時, 才會被交換器投送到繫結的佇列中去.

.topic:按規則**訊息(最靈活)

.headers:設定 header attribute 引數型別的交換機

.fanout:**訊息到所有繫結佇列

比較常用的是direct、topic、fanout.

這種fanout模式不處理路由鍵,只·需要簡單的將佇列繫結到exchange上,乙個傳送到exchange的訊息都會被**到與該exchange繫結的所有佇列上。很像廣播子網,每台子網內的主機都獲得了乙份複製的訊息。fanout型別的exchange**訊息是最快的。

簡單說,就是廣播模式,訊息來了,會傳送給所有佇列。

這種模式會處理路由鍵,也就是所謂的按需索取。需要將乙個佇列繫結到exchange上面,要求該訊息與乙個特定的路由鍵完全匹配。訊息才會進入到該佇列中。如果乙個佇列繫結到該交換機上要求路由鍵 「dog」,則只有被標記為「dog」的訊息才被**,不會**dog.puppy,也不會**dog.guard,只會**dog。

簡單說,就是指定佇列模式, 訊息來了,只發給指定的 queue, 其他queue 都收不到。

這種模式和direct模式的原理是一樣的,都是根據路由鍵進行訊息的路由,但是這種支援路由鍵的模糊匹配,此時佇列需要繫結要乙個模式上。符號「#」匹配乙個或多個詞,符號「*」匹配不多不少乙個詞。

參考:、、、

中介軟體 訊息中介軟體學習總結

冪等 在程式設計中.乙個冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。冪等函式,或冪等方法,是指可以使用相同引數重複執行,並能獲得相同結果的函式。這些函式 不會影響系統狀態,也不用擔心重複執行會對系統造成改變。例如,getusername 和settrue 函式就是乙個冪等函式....

學習筆記 訊息中介軟體(1)

介紹 訊息中介軟體是訊息的傳輸過程中儲存訊息的容器。訊息中介軟體再將訊息從它的源中繼到它的目標時充當中間人的作用。佇列的主要目的是提供路由並保證訊息的傳遞 如果傳送訊息時接收者不可用,訊息佇列會保留,直到可以成功地傳遞它為止,當然訊息佇列儲存訊息也是有限的。特點 1 採用非同步處理模式 訊息傳送者可...

訊息中介軟體

1.訊息的優先順序 2.訊息排序 3.訊息過濾 4.訊息持久化 5.訊息重試 6.事務的支援 7.broker滿 生產者,佇列,消費者 訊息佇列的優點 1 解耦2 非同步訊息,系統響應 在jms中,有兩種訊息模型 點對點模式和發布訂閱模式。1.在點對點模式中 有三種角色 1 訊息佇列,傳送者,接受者...