ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RabbitMQ的工作模式

2022-08-12 10:33:49  阅读:208  来源: 互联网

标签:Exchange 队列 绑定 模式 工作 交换机 RabbitMQ 消息


1.Hello world 简单模式 一个生产者对应一个消费者。   2.Work Queues 工作队列 0 一个生产者,对应多个消费者,消费者之间是竞争去同一队列取消息,并不会取到相同一条消息,类似于Redis中的队列,只能被取走一次。 应用场景:对于任务过重或任务较多的情况,使用工作队列可以提高任务处理的速度。简单来说,就是可分布式处理的简单任务,可以放在任务队列中,由多个消费者一起形式上的并发去共同处理,这样减少总任务的执行时间。   3.Pub/Sub 订阅模式   0 在订阅模型中,多了一个Exchange角色,而且过程略有变化: 1.P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发送给X(交换机) 2.C:消费者,消息的接收者,会一直等待消息到来 3.Queue:消息队列,接受消息,缓存消息 4.Exchange:交换机(X)。一方面,接受生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange常见一下3种类型: Fanout:广播,将消息交给所有绑定到交换机的队列 Direct:定向,把消息交给符合指定routingKey的队列 Topic:通配符,把消息交给符合routing pattern(路由模式)的队列 此外还有一个是Headers,是参数匹配,用的比较少 Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失。 消息订阅模式中,交换机的类型为Fanout。 4.Routing 路由模式   0 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由Key) 消息的发送方向Exchange发送消息时,也必须指定消息的Routingkey Exchange不再把消息交给某一个绑定的队列,二十根据消息的RoutingKey进行判断,只有队列RoutingKey与消息的RoutingKey完全一致的时候,才会接受到消息。 Routing模式要求队列在绑定交换机的时候要指定routingkey,消息会转发到符合routingkey的队列中,且一个队列可以绑定多个routing key.交换机的类型需要是direct。 5. Topic 通配符模式 0 交换机类型为Topic。Topic主题模式可以实现Pub/Sub发布与订阅模式和Routing路由模式的功能,只是Topic在配置routing key的时候可以使用通配符,显得更加灵活。 Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert 通配符规则:
  • #:匹配一个或多个词
  • *:匹配一个词

标签:Exchange,队列,绑定,模式,工作,交换机,RabbitMQ,消息
来源: https://www.cnblogs.com/pangzili/p/16578854.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有