成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RabbitMQ:RabbitMQ架構和工作流程

開源
RabbitMQ,俗稱“兔子MQ”(可見其輕巧,敏捷),是目前非常熱門的一款開源消息中間件,不管 是互聯網行業還是傳統行業都廣泛使用(最早是為了解決電信行業系統之間的可靠通信而設計)。

一、介紹

RabbitMQ,俗稱“兔子MQ”(可見其輕巧,敏捷),是目前非常熱門的一款開源消息中間件,不管 是互聯網行業還是傳統行業都廣泛使用(最早是為了解決電信行業系統之間的可靠通信而設計)。

1. 高可靠性、易擴展、高可用、功能豐富等

2. 支持大多數(甚至冷門)的編程語言客戶端。

3. RabbitMQ遵循AMQP協議,自身采用Erlang(一種由愛立信開發的通用面向并發編程的語 言)編寫。

4. RabbitMQ也支持MQTT等其他協議。

RabbitMQ具有很強大的插件擴展能力,官方和社區提供了非常豐富的插件可供選擇:

https://www.rabbitmq.com/community-plugins.html

二、整體邏輯架構

1、RabbitMQ Exchange類型

RabbitMQ常用的交換器類型有: fanout 、 direct 、 topic 、 headers 四種。

Fanout

fanout會把所有發送到該交換器的消息路由到所有與該交換器綁定的隊列中,如圖:

Direct

direct類型的交換器路由規則很簡單,它會把消息路由到那些BindingKey和RoutingKey完全匹配的 隊列中,如下圖:

Topic

topic類型的交換器在direct匹配規則上進行了擴展,也是將消息路由到BindingKey和RoutingKey 相匹配的隊列中,這里的匹配規則稍微不同,它約定: BindingKey和RoutingKey一樣都是由"."分隔的字符串;BindingKey中可以存在兩種特殊字符“*”和 “#”,用于模糊匹配,其中"*"用于匹配一個單詞,"#"用于匹配多個單詞(可以是0個)。

Headers

headers類型的交換器不依賴于路由鍵的匹配規則來路由信息,而是根據發送的消息內容中的 headers屬性進行匹配。在綁定隊列和交換器時指定一組鍵值對,當發送的消息到交換器時, RabbitMQ會獲取到該消息的headers,對比其中的鍵值對是否完全匹配隊列和交換器綁定時指定的鍵 值對,如果匹配,消息就會路由到該隊列。headers類型的交換器性能很差,不實用。

2、RabbitMQ數據存儲

RabbitMQ消息有兩種類型: 1. 持久化消息和非持久化消息。 2. 這兩種消息都會被寫入磁盤。

持久化消息在到達隊列時寫入磁盤,同時會內存中保存一份備份,當內存吃緊時,消息從內存中清 除。這會提高一定的性能。

非持久化消息一般只存于內存中,當內存壓力大時數據刷盤處理,以節省內存空間。

RabbitMQ存儲層包含兩個部分:隊列索引和消息存儲。

三、工作流程

1、生產者發送消息的流程

1)生產者連接RabbitMQ,建立TCP連接( Connection),開啟信道(Channel)

2)生產者聲明一個Exchange(交換器),并設置相關屬性,比如交換器類型、是否持久化等

3)生產者聲明一個隊列井設置相關屬性,比如是否排他、是否持久化、是否自動刪除等

4)生產者通過 bindingKey (綁定Key)將交換器和隊列綁定( binding )起來

5)生產者發送消息至RabbitMQ Broker,其中包含 routingKey (路由鍵)、交換器等信息

6) 相應的交換器根據接收到的 routingKey 查找相匹配的隊列。

7)如果找到,則將從生產者發送過來的消息存入相應的隊列中。

8)如果沒有找到,則根據生產者配置的屬性選擇丟棄還是回退給生產者

9)關閉信道。

10)關閉連接。

2、 消費者接收消息的過程

1) 消費者連接到RabbitMQ Broker ,建立一個連接(Connection ) ,開啟一個信道(Channel) 。

2)消費者向RabbitMQ Broker 請求消費相應隊列中的消息,可能會設置相應的回調函數, 以及 做一些準備工作

3)等待RabbitMQ Broker 回應并投遞相應隊列中的消息, 消費者接收消息。

4)消費者確認( ack) 接收到的消息。

5)RabbitMQ 從隊列中刪除相應已經被確認的消息。

6)關閉信道。

7)關閉連接。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2010-09-27 10:19:09

DHCP工作流程

2009-06-05 10:26:05

struts工作流程

2022-11-02 15:11:44

LightHouseChrome插件

2011-03-31 10:54:01

Cacti工作流程

2023-11-20 08:54:38

2025-04-15 04:00:00

2009-12-14 15:01:31

架構師

2010-07-13 16:21:22

FIX協議

2010-07-28 17:19:28

ICMP協議

2010-06-24 16:40:16

Bittorrent協

2009-07-27 14:13:15

2011-03-29 09:30:12

Cacti

2010-06-12 17:44:19

ARP協議

2020-02-20 16:45:39

RabbitMQKafka架構

2022-10-08 07:55:33

DemoMongoDB異步

2010-08-25 09:48:41

DHCP協議

2010-06-23 14:46:54

DHCP協議

2010-08-30 09:07:12

DHCP工作流程

2009-08-07 11:10:40

Netbeans ID

2020-07-27 08:44:22

存儲Kafka 流程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区三区 | 美女久久 | 久久成人人人人精品欧 | 成人福利在线观看 | 国产精品2 | 亚洲成av| 黄色电影在线免费观看 | 精品久久久久久久 | 日韩视频一区在线观看 | 一区二区在线观看免费视频 | 成年人精品视频 | 在线免费观看日本 | 国产精品一区二区三区在线播放 | 日韩三级在线 | 在线观看国产wwwa级羞羞视频 | 懂色av一区二区三区在线播放 | 久久国产精品一区二区三区 | 成人福利片 | 人人看人人搞 | 亚洲美女网站 | 久久久国产一区二区三区四区小说 | 91不卡| 欧美一区二区三区在线 | 亚洲在线视频 | 中文天堂在线观看 | 国产伦精品 | 美女福利视频网站 | 精品亚洲一区二区三区 | 亚洲色图婷婷 | 一级黄色日本片 | re久久 | 亚洲激情综合 | 蜜臀久久99精品久久久久久宅男 | 三级免费 | 久久高清精品 | 天堂视频中文在线 | 免费国产一区二区 | 日韩在线中文字幕 | 亚洲一区二区视频 | 国产一区二区三区视频 | 五月天国产 |