RabbitMQ系列 二 基礎元件

2022-02-18 21:13:51 字數 1948 閱讀 2929

rabbitmq是開源**和佇列伺服器,通過普通協議在不同的應用之間共享資料,使用erlang編寫(erlang進行資料交換的效能很好,

和原生socket

一樣好的延遲響應效果),基於amqp協議

amqp高階訊息佇列協議:具有現代特徵的二進位制協議,和jms有點像,模型如下:

amqp核心概念

1、server:broker,接受client連線,實現amqp實體服務

2、connection:應用程式和broker的網路連線

3、channel:網路通道,讀寫都是在channel中進行(nio的概念),包括對mq進行的一些操作(例如clear queue等)都是在channel中進行,

客戶端可建立多個channel,每個channel代表乙個會話任務

4、message:由properties(有訊息優先順序、延遲等特性)和body(訊息內容)組成

5、virtual host:用於訊息隔離(類似redis 16個db這種概念),最上層的訊息路由,乙個包含若干exchange和queue,同乙個裡面exchange

和queue的名稱不能存在相同的。

6、exchange:routing and filter

7、binding:把exchange和queue進行binding

8、routing key:路由規則

9、queue:物理上儲存訊息

滴滴、美團、頭條、去哪兒。。。。都再使用rabbitmq

原因:

1、開源、效能優秀、能保證穩定性,提供可靠性訊息投遞模式confirm、返回模式return,和springamqp完美整合、api豐富

2、集群模式豐富,表示式配置,ha模式,映象佇列模式

3、保證資料不丟失的前提下做到高可靠性、高可用性

1、exchange: 

如果不指定exchange的話,rabbitmq預設使用,(amqp default)注意一下,需要將routing key等於queue name相同

2、name、type:

fanout(效率最好,不需要routing key,routing key如何設定都可以)、direct、topic(#乙個或多個,*乙個)、headers

3、auto delete:

當最後乙個binding到exchange的queue刪除之後,自動刪除該exchange

4、binding:

exchange和queue之間的連線關係,exchange之間也可以binding

5、queue:

實際物理上儲存訊息的

6、durability:

是否持久化,durable:是,即使伺服器重啟,這個佇列也不會消失,transient:否

7、exclusive:

這個queue只能由乙個exchange監聽restricted to this connection,使用場景:順序消費

8、message:

由properties(有訊息優先順序、延遲等特性)和body(payload訊息內容)組成

,還有content_type、content_encoding、priority

correlation_id、reply_to、expiration、message_id等屬性

需要注意:注意rabbitmq和erlang版本的對應,而且伺服器的host name不要瞎改,當初rabbitmq一直啟動報錯,就是這個原因,搞了兩天,真的

蛋疼,

先要確定erlang安裝成功,然後按照rabbitmq

瀏覽器視覺化工具:rabbitmq-plugins enable rabbitmq_management  使用者名稱、密碼:guest guest

rabbitMQ系列2 rabbitMQ快速入門

一 簡介 以熟悉的電商場景為例,如果商品服務和訂單服務是兩個不同的微服務,在下單的過程中訂單服務需要呼叫商品服務進行扣庫存操作。按照傳統的方式,下單過程要等到呼叫完畢之後才能返回下單成功,如果網路產生波動等原因使得商品服務扣庫存延遲或者失敗,會帶來較差的使用者體驗,如果在高併發的場景下,這樣的處理顯...

RabbitMQ學習筆記(二) 基礎概念

queue 佇列 是rabbitmq的內部物件,用於訊息的消費,用下圖表示。rabbitmq中的訊息都只能儲存在queue中,生產者 下圖中的p 生產訊息並最終投遞到queue中,消費者 下圖中的c 可以從queue中獲取訊息並消費。多個消費者可以訂閱同乙個queue,這時queue中的訊息會被平均...

Kong系列(二) Kong元件使用

在真正開始使用之前,先了解了一下在kong中的所用元件,並對他們的關係做了乙個初步了解,下面就將一下kong中常用的元件簡單做下了解 service service 顧名思義,就是我們自己定義的上游服務,通過kong匹配到相應的請求要 的地方 service 可以與下面的route進行關聯,乙個se...