自己的飞书文档:RabbitMQ的流程图和作业 - 飞书云文档 (feishu.cn)
作业
图片一张 画rabbit-mq 消息发送流程图 基于绑定关系参考和发送流程参考 ,
把绑定关系参考的exchange和routing-key和queue画到图中
体会exchange routing-key queue exchange 不同类型 Direct 和 fanout 的区别
老师给我们的参考图:
绑定关系参考
exchange | type | routing-key | queue |
test-add-exchange-0 | direct | t-a-q-0 | test-add-queue-0 |
t-a-q-1 | test-add-queue-1 | ||
t-a-q-2 | test-add-queue-2 | ||
test-add-exchange-1 | fanout | t-a-q-3 | test-add-queue-3 |
t-a-q-4 | test-add-queue-4 | ||
t-a-q-5 | test-add-queue-5 |
解答
原图地址 : RabbitMq流程图| ProcessOn免费在线作图,在线流程图,在线思维导图
参考文档
什么是Exchange_云消息队列 RabbitMQ 版( RabbitMQ)-阿里云帮助中心
Direct Exchange
总结: Message在生产者生产过程中就创建了Routing Key
Direct Exchange 是根据Routing Key 将交换机的信息传递给对应的队列,属于完全匹配
-
路由规则
-
Direct Exchange根据Routing Key完全匹配的规则路由消息。
-
使用场景
-
Direct Exchange适用于通过简单字符标识符区分消息的场景。Direct Exchange常用于单播路由。
Topic Direct
总结: Topic Exchange是通过 队列中绑定的Routing Key模糊(通配符)绑定从而匹配多个消息
-
路由规则
-
Topic Exchange根据Routing Key通配符匹配的规则路由消息。Topic Exchange支持的通配符包括星号(*)和井号(#)。星号(*)代表一个英文单词(例如cn)。井号(#)代表零个、一个或多个英文单词,英文单词间通过英文句号(.)分隔,例如cn.zj.hz。
-
使用场景
-
Topic Exchange适用于通过通配符区分消息的场景。Topic Exchange常用于多播路由。例如,使用Topic Exchange分发有关于特定地理位置的数据。
Fanout Exchange
总结: FanOut 会忽略Routing Key 向所有的队列传送消息
-
路由规则
-
Fanout Exchange忽略Routing Key的匹配规则将消息路由到所有绑定的Queue。
-
使用场景
-
Fanout Exchange适用于广播消息的场景。例如,分发系统使用Fanout Exchange来广播各种状态和配置更新。