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

RabbitMQ是如何實現消息路由的?

開發 前端
生產者把消息發送到 RabbitMQ Broker 上的Exchange 交換機上。Exchange 交換機把收到的消息根據路由規則發給綁定的隊列(Queue)。最后再把消息投遞給訂閱了這個隊列的消費者,從而完成消息的異步通訊。

?1.工作流程

RabbitMQ 是一個基于 AMQP 協議實現的分布式消息中間件。AMQP 的具體工作機制是,

圖片

生產者把消息發送到 RabbitMQ Broker 上的Exchange 交換機上。Exchange 交換機把收到的消息根據路由規則發給綁定的隊列(Queue)。最后再把消息投遞給訂閱了這個隊列的消費者,從而完成消息的異步通訊。

其中,Exchange交換機,可以定義消息的路由規則,將消息路由到指定的隊列。然后 Queue隊列是消息的載體,每個消息可以根據路由規則路由到一個或者多個隊列中。

2.路由策略

完成RabbitMQ消息路由的核心組件是 Exchange。而消息的路由是由Exchange類型 和 Binding 來決定的。Binding 表示建立 Queue 和 Exchange 之間的綁定關系,每一個綁定關系會存在一個 BindingKey。

通過這種方式相當于在 Exchange 中建立了一個路由關系表。生產者發送消息的時候,需要聲明一個 RoutingKey(路由鍵),Exchange 拿到RoutingKey 之后,根據 RoutingKey 和路由表里面的 BindingKey 進行匹配,而匹配的規則是通過 Exchange類型來決定的。

在 RabbitMQ 中,默認有四種類型的 Exchange:Direct ,Fanout、Topic和Header。

Direct,叫直連,也就是完整匹配方式,需要Routing Key 和 Binding Key 完全一致,相當于點對點的發送。如圖所示:

圖片

如果發送routing key為”spring”的消息,那么只有第一個隊列能收到消息。

Topic:叫主題,這種方式是通過設置通配符來動態匹配,相當于正則。就是用Routing Key 去匹配Binging Key。BingingKey支持兩個通配符。

代表匹配0個或者多個單詞

* 代表匹配不多不少一個單詞

另外,BingingKey用點隔開兩個單詞。

用*表示使用正則表達式進行匹配,如圖所示:

圖片

有4個隊列綁定到Topic類型的交換機,而且使用不同的綁定鍵。

如果發送routing key為"junior.abc.jvm" 的消息,那么,只有第一個隊列能收到。

如果發送routing key為"senior.netty"的消息,那么,第二個隊列和第三個隊列能收到。

Fanout:叫廣播,這種方式不需要設置Routing Key,而是把消息廣播給綁定到當前 Exchange 上的所有隊列上。如圖所示:

圖片

只要發送消息到Fanout Exchange上,那么三個隊列都能收到消息

RabbitMQ、Kafka、RocketMQ 是目前最主流的分布式消息中間件。有的同學可能對 Kafka 比較了解,有的同學可能對 RabbitMQ 比較了解。不過,在面試的時候,面試官一般會問你用過的技術組件。通過面試過程中推演出你的學習能力以及對技術的掌握能力,這個方面如果還不錯的話,接觸一個新的 MQ 組件所消耗的學習成本會比較小。

責任編輯:武曉燕 來源: Tom彈架構
相關推薦

2022-07-26 20:00:35

場景RabbitMQMQ

2020-09-27 07:44:08

RabbitMQ投遞消息

2020-10-14 08:36:10

RabbitMQ消息

2025-05-29 01:33:00

微服務架構系統

2024-12-18 07:43:49

2024-05-23 12:11:39

2024-05-09 08:04:23

RabbitMQ消息可靠性

2023-09-05 15:48:14

RabbitMQ延遲隊列

2024-12-31 00:00:00

RabbitMQ插件代碼

2024-05-16 08:10:17

RabbitMQ軟件通信機制

2020-08-26 07:17:19

通信

2024-05-10 09:36:36

架構消息隊列

2021-09-07 10:38:37

RabbitMQ 高可用消費

2023-12-04 09:23:49

分布式消息

2025-03-12 07:55:46

2023-11-08 07:51:11

RabbitMQ接收消息

2019-02-25 15:44:16

開源RabbitMQSpring Clou

2024-01-31 09:42:11

RabbitMQ消息隊列.NET

2024-11-05 15:02:41

2021-09-17 12:50:10

MySQL數據庫ACID
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 尤物在线精品视频 | 久久久女女女女999久久 | 久久久久国产 | h视频在线看 | 久久精品亚洲国产奇米99 | 日韩成人在线视频 | 亚洲综合色站 | 亚洲三级在线观看 | 亚洲精品一区二区三区蜜桃久 | 久久久国产一区二区三区四区小说 | 日日夜夜天天干 | 久久国产精品久久 | 精品视频久久久 | 欧美a区| 日韩不卡在线 | 欧美在线日韩 | 国产第一页在线观看 | 中文字幕在线剧情 | 国产日韩一区二区三免费高清 | 黄视频国产 | 久久r久久 | 7777精品伊人久久精品影视 | 欧美日韩精品在线一区 | 91不卡| 欧美亚洲国语精品一区二区 | 国产精品日产欧美久久久久 | 中文字幕国产高清 | 风间由美一区二区三区在线观看 | 欧美精品国产一区二区 | 亚洲精品视频在线播放 | 欧美三级在线 | 在线看91| 古装人性做爰av网站 | 亚洲欧美国产毛片在线 | 免费看国产片在线观看 | 国产一区二区 | www国产成人免费观看视频,深夜成人网 | 91精品国产综合久久久久久丝袜 | 成人午夜视频在线观看 | 精品视频在线观看 | 国产欧美日韩综合精品一 |