加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2019-05-30 17:31:21)
标签:

rabbitmq

rabbitmq笔记

rabbitmq队列类型

分类: RabbitMq
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

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有