专栏首页用户1214782的专栏RabbitMq的消息队列类型direct、fanout、topic、headers(headers抛弃)

RabbitMq的消息队列类型direct、fanout、topic、headers(headers抛弃)

direct (交换器 + 路由键匹配,投递到对应的队列)

1 服务端 server 将 消息 msg_txt 投递 到 交换器 exchange_name 路由键为 routing_key_name ,当 有队列 queue_name 绑定到 本交换器 exchange_name 并且绑定路由键为 routing_key_name ,则消息到达队列 queue_name

2 服务端 server 将 消息 msg_txt 投递 到 交换器 exchange_name 路由键为 routing_key_name ,当 有队列 queue_name 绑定到 本交换器 exchange_name 并且绑定路由键为 routing_key_name_1 非 routing_key_name ,消息丢弃

3 服务端 server 将 消息 msg_txt 投递 到 交换器 exchange_name 路由键为 routing_key_name ,无 队列 绑定到 本交换器 exchange_name,无论绑定的 路由键 是不是 routing_key_name 消息丢弃

1 客户端 client 将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key_name , 则 接受 来自 交换器 exchange_name 路由键为 routing_key_name 的消息,不接受 routing_key_name_1 的消息

2 客户端 client 将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key_name 和 routing_key_name_1 , 则 接受 来自 交换器 exchange_name 路由键为 routing_key_name 和 routing_key_name_1 的消息

3 客户端 client 将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key* , 则 接受 来自 交换器 exchange_name 路由键为 routing_key* 的消息,不接受 路由键为 routing_key_name 和 routing_key_name_1 的消息

4 客户端 client 将 多个队列 queue_name_1 queue_name_2 queue_name_3 都绑定 到  交换器 exchange_name 路由键为 routing_key_name , 则 所有队列 接受 来自 交换器 exchange_name 路由键为 routing_key_name 的所有消息不轮训

fanout (交换器,投递到对应的队列) 

1 服务端 server 将 消息 msg_txt 投递 到 交换器 exchange_name 路由键无论是什么 当 有队列 queue_name 绑定到 本交换器 exchange_name 则消息到达队列 queue_name

2 服务端 server 将 消息 msg_txt 投递 到 交换器 exchange_name 路由键无论是什么 无 队列 绑定到 本交换器 exchange_name 消息丢弃

1 客户端 client 将 队列 queue_name 绑定 到  交换器 exchange_name 路由键无论是什么 则 接受 来自 交换器 exchange_name 的消息

2 客户端 client 将 多个队列 queue_name_1 queue_name_2 queue_name_3 都绑定 到  交换器 exchange_name 路由键无论是什么 , 则 所有队列 接受 来自 交换器 exchange_name 所有消息不轮训

topic (交换器 + 路由键 正则匹配,使用 * 匹配一个单词,# 匹配多个单词,投递到对应的队列)

1 同direct

2 客户端 client 若将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key.* ,  则 接受 来自 交换器 exchange_name 路由键为 routing_key.name1 和 routing_key.name2 的消息 不接受 routing_key_name 和 routing_key.name1.name2 的消息

3 客户端 client 若将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key.# ,  则 接受 来自 交换器 exchange_name 路由键为 routing_key.name1 和 routing_key.name2 和 routing_key.name1.name2 的消息 不接受 routing_key_name 的消息

4 客户端 client 若将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 # ,  则 接受 来自 交换器 exchange_name 路由键为 routing_key.name1 和 routing_key.name2 和 routing_key.name1.name2 和 routing_key_name 的消息

5 客户端 client 若将 队列 queue_name 绑定 到  交换器 exchange_name 路由键为 routing_key* 或 routing_key# ,  则 不接受 来自 交换器 exchange_name 路由键为 routing_key.name1 和 routing_key.name2 和 routing_key.name1.name2 和 routing_key_name 的消息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jq使用localStorage实现保存密码

    if ($("input[name='storage']").prop('checked')) {

    93年的老男孩
  • RabbitMq笔记说明

    生产者工作模式:将消息 msg 发送给指定的交换器 exchange, 由交换器 exchange 根据指定的规则-路由键 (routing key) 决定投递...

    93年的老男孩
  • nginx根据日期记录日志

    if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {

    93年的老男孩
  • python中的内置函数(双下划线) 原

    如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import...

    晓歌
  • 海量数据迁移之分区并行抽取(r2笔记53天)

    在之前的章节中分享过一些数据迁移中并行抽取的细节,比如一个表T 很大,有500G的数据,如果开启并行抽取,默认数据库中并行的最大值为64,那么生成的dump文件...

    jeanron100
  • 网站搭建-django-学习成绩管理-10-查询成绩之后端实现

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia
  • Struts2之Validation的简单使用实例

    本来不打算写这些细枝末节的东西了,因为在文档中都有现成的实例,写了也只能自己用来参考,不过这个Validation文档中给的不全,从网上查之后才知道用法。 首先...

    the5fire
  • Python操作redis数据库

      redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、se...

    马一特
  • 将若干字符串按字母顺序(由小到大)输出(用指针)

    谙忆
  • python操作数据库

    pip install redispy 参考:https://www.cnblogs.com/john-xiong/p/12089103.html

    sofu456

扫码关注云+社区

领取腾讯云代金券