大家好,今天小编来为大家解答深入解析:RabbitMQ中的队列与交换机差异对比这个问题,很多人还不知道,现在让我们一起来看看吧!
1. 交换机有哪五种类型?
1、直接兑换。
一个。只有routingKey完全匹配后才会被消费。例如:如果生成一条消息“我是中国人”并发送给交换机,则路由键绑定为“中国”。如果要消费的话,只能消费“中国”匹配的路由键。 (可以比喻为交换机是“地球”,路由键是“国家-中国”,消息是“人民”,这条消息的身份证是哪个国家的“路由键”,即,你只能在这个国家享有权益。)
b.如果他们都消费相同的routingKey,那么多个消费者中谁先消费,谁就拥有它。
2、话题交流。
一个。这种模式不仅需要交换器和队列绑定,还需要与路由键routingKey关联。
b.模糊匹配模式,如:两个路由键animal.dog、animal.dog.eat。如果队列不仅对“dog”消息感兴趣,还对与“dog”相关的消息感兴趣,则可以使用主题模式,animal.dog.#。 (支持#0或多词模糊匹配,*单词匹配)
应用:订阅任务、信息分类更新业务
3.扇出交换。
一个。该模式不需要路由键routingKey
b.该模式只需要绑定队列和交换器。一个exchange可以绑定N多个队列,每个队列都会收到相同的消息。
c.一个队列可以绑定多个exchange,并消费来自不同exchange的消息。
d.转发消息的最快方式
应用:群聊功能、全网消息推送功能
4. 标头交换。
一个。没有routing key的routingKey的概念
b.只有当header 中的消息与消息匹配时,才能被消费。
5、系统exchange——其实和系统默认的直接模式是一样的,只是不需要定义exchange名称。
2. 六种队列模式
1.hello word模式(单次发送、单次接收模式)
2.工作模式(工厂模式)
一个发送者,多个接收者,支持持久性、公平消费原则basicQos、消息可靠性ack=true、false
一个。消息队列持久化——真正持久化
b.消费时,channel.basicAck() 会在消息处理完成后发送一条消息false 来确认单个消息,或者发送true 来确认一批消息。
c. Channel.basicQos(1)用于保证接收端在一条消息尚未处理完时不会再收到另一条消息。即接收端在发送ack之前不会收到下一条消息。在这种情况下,发送者将尝试将消息发送给下一个空闲的接收者。
3.发布/订阅
一个生产者向多个消费者发送消息
4.路由模式
向交换机发送消息并指定路由键。消费者需要匹配routing key才能消费。
5.主题模式
发送消息到交换机并将其绑定到路由键,但路由键支持模糊匹配,这意味着它成为“一类”消息。
6.RPC模式
这个方法比较高端,我还没学会。
附件是参数的参数解释。
【深入解析:RabbitMQ中的队列与交换机差异对比】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我想学习一下消息队列, 这个标题听起来很有用!
有8位网友表示赞同!
rabbitmq是比较流行的消息中间件吧?
有16位网友表示赞同!
感觉交换机和队列好像很关键,关系应该挺密切的。
有6位网友表示赞同!
之前没太理解queue模式和交换机的区别,需要好好看看这篇文章仔细了解一下。
有15位网友表示赞同!
我最近在研究消息系统,这篇博客正好是我需要的资料!
有16位网友表示赞同!
文章内容应该会讲解这些技术的原理以及应用场景吧?期待学习
有13位网友表示赞同!
希望能够通过这篇文章明白如何合理地选择队列模式和交换机类型。
有20位网友表示赞同!
rabbitmq 的使用范围还是很广泛的?
有17位网友表示赞同!
感觉消息中间件能提高系统的性能和可靠性,很实用!
有19位网友表示赞同!
学习一下这些知识可以让我更好地理解分布式系统吧?
有19位网友表示赞同!
我对这个主题比较感兴趣,希望能找到一些实用的案例分析。
有5位网友表示赞同!
我想多了解一下rabbitMQ的具体实现机制。
有16位网友表示赞同!
文章应该会介绍不同队列模式和交换机的特性之间的差异?
有13位网友表示赞同!
我之前想学习消息系统相关的技术,这个标题正好符合我的需求!
有6位网友表示赞同!
希望这篇文章能够深入浅出地讲解这些技术要点。
有9位网友表示赞同!
看来rabbitmq的配置难度还是比较高的啊?
有19位网友表示赞同!
这篇文章应该能帮助我更好地理解消息传递的工作原理吧?
有7位网友表示赞同!
了解了这些知识,也许我就能开发一些更优秀的分布式系统?
有7位网友表示赞同!
感觉学习消息队列技术很有必要,这个标题听起来很靠谱!
有12位网友表示赞同!