當前位置:名人名言大全網 - 端午節短信 - AMQP議定書和兔子q

AMQP議定書和兔子q

AMQP(Advanced Message Queuing Protocol,高級消息隊列協議)是消息中間件的應用層協議,用於對組件進行解耦,以提供統壹的消息服務。主要功能是對消息進行排序和路由(包括點對點和訂閱發布),保證消息的可靠性和安全性。

遵循AMPQ協議的客戶端可以通過消息中間件相互通信。這樣客戶端可以用不同的開發語言實現,相互之間沒有很強的依賴性,降低了客戶端的復雜度,提高了開發效率,也有利於後期的維護。

AMQP的模型框架如下:

RabbitMQ是AMQP協議的開源實現。架構模型也可以用下圖表示:

如上圖,簡單模式,單發布者,單隊列,單消費者。

如上圖,工作模式

多個消費者*** * *使用壹個隊列的消息。

在這種模式下,rabbitMQ會自動做負載均衡,向所有消費者發送消息輪詢,即壹條消息只能被壹個消費者獲取。

如上圖,發布/訂閱發布訂閱模式(廣播模式)。

與前兩種模式相比,多了壹個交換(類型fanout)。消息首先被發送到交換,然後交換被分別發送到所有相應的隊列。消費者訂閱他自己的隊列,並在他訂閱的隊列上使用消息。

應用場景示例,如下圖所示:

比如網購和支付成功後通知用戶的方式有很多,app推送、短信、郵件等等。

消息到達後由exchange發送到三個隊列(app push q,SMS q,email_q)。

之後,app推送服務、短信通知服務和郵件通知服務從其訂閱隊列中獲取消息,通知用戶支付成功。

如上圖,交換類型設置為直接。

此時,消息中的rountingKey與交換中的bindingKey相匹配。如果相等,它們將被發送到相應的隊列。如果它們與bindingKey不匹配,消息將被丟棄。

應用場景示例,如下圖所示:

例如,服務生成的日誌有很多種,如error、info、debuf等。,而我們的需求只是想把錯誤類型的日誌寫到磁盤上,所以可以用路由方式把錯誤日誌路由到錯誤隊列,然後相應的寫磁盤服務獲取消息,寫到磁盤上。

如上圖,交流類型是話題。與第四種模式相比,相同點是都是按照rountingKey匹配,不同點是話題模式支持模糊匹配。