其他分享
首页 > 其他分享> > RabbitMQ的工作模式

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