RabbitMQ

作者: 李小二的倔强 | 来源:发表于2018-07-14 21:45 被阅读0次

    RabbitMQ的工作队列模式

    1.Work queues——工作队列模式

        1、一条消息只会被一个消费者接收;

        2、rabbit采用轮询的方式将消息是平均发送给消费者的;

        3、消费者在处理完某条消息后,才会收到下一条消息。

    2.Publish/subscribe——发布订阅模式

        1、每个消费者监听自己的队列。

        2、生产者将消息发给broker,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接收到消息

      publish/subscribe与work queues有什么区别。

            1)work queues不用定义交换机,而publish/subscribe需要定义交换机。

            2)publish/subscribe的生产方是面向交换机发送消息,work queues的生产方是面向队列发送消息(底层使用默认交换机)。

            3)publish/subscribe需要设置队列和交换机的绑定,work queues不需要设置,实质上work queues会将队列绑定到默认的交换机 。

        相同点:

            所以两者实现的发布/订阅的效果是一样的,多个消费端监听同一个队列不会重复消费消息。

            2、实质工作用什么 publish/subscribe还是work queues。建议使用 publish/subscribe,

            发布订阅模式比工作队列模式更强大,并且发布订阅模式可以指定自己专用的交换

    机。

    3.Routing——路由模式

    1、每个消费者监听自己的队列,并且设置routingkey。

        2、生产者将消息发给交换机,由交换机根据routingkey来转发消息到指定的队列。

    Routing模式和Publish/subscibe有啥区别?

        Routing模式要求队列在绑定交换机时要指定routingkey,消息会转发到符合routingkey的队列。

        路由模式指定多个routingkey可以实现发布订阅模式

    4.Topics——路由通配符模式

        1、每个消费者监听自己的队列,并且设置带统配符的routingkey。

        2、生产者将消息发给broker,由交换机根据routingkey来转发消息到指定的队列。

    队列绑定交换机指定通配符:统配符规则:

            中间以“.”分隔。符号#可以匹配多个词,符号*可以匹配一个词语。

    Topic模式更多加强大,它可以实现Routing、publish/subscirbe模式的功能

    5.Header 模式

        header模式与routing不同的地方在于,header模式取消routingkey,使用header中的 key/value(键值对)匹配队列

    6.RPC——远程调用模式

        RPC即客户端远程调用服务端的方法,使用MQ可以实现RPC的异步调用,基于Direct交换机实现,流程如下:

        1、客户端即是生产者就是消费者,向RPC请求队列发送RPC调用消息,同时监听RPC响应队列。

        2、服务端监听RPC请求队列的消息,收到消息后执行服务端的方法,得到方法返回的结果

        3、服务端将RPC方法 的结果发送到RPC响应队列

        4、客户端(RPC调用方)监听RPC响应队列,接收到RPC调用结果。

        解决:RPC远程调用中的响应问题

    相关文章

      网友评论

          本文标题:RabbitMQ

          本文链接:https://www.haomeiwen.com/subject/eycupftx.html