美文网首页
RabbitMQ 工作模式

RabbitMQ 工作模式

作者: 松松木tell | 来源:发表于2022-04-08 15:29 被阅读0次

    https://blog.csdn.net/wmh1152151276/article/details/90299834
    https://www.cnblogs.com/xyfer1018/p/11581511.html
    https://zhuanlan.zhihu.com/p/136846912
    https://blog.csdn.net/Weixiaohuai/article/details/93494018?utm_medium=distribute.pc_relevant_download.none-task-blog-blogcommendfrombaidu-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-blogcommendfrombaidu-2.nonecas

    Rabbitmq一般有以下几种工作模式

    工作模式

    • 1. 简单队列模式(Simple Queue)
    • 2. 工作队列模式(Work queues)
    • 3. 发布订阅模式Publish/subscribe(fanout)
    • 4. 路由模式Routing(direct)
    • 5. 通配符模式(Topic)
    • 6. Header模式
    • 7. RPC 模式

    1. 简单队列模式(Simple Queue)

    不用声明交换机,只需要定义一个队列

    • 生产者:指定queue名发送message,默认Exchange会将message转发到该queue
    • 消费者:监听这个队列,,一有消息就可以消费了

    2. 工作队列模式(Work queues)

    其实和简单队列模式区别在于:

    • 定义多个消费者来消费,一条消息只能被一个消费者进行消费。

    工作队列:有轮询分发和公平分发两种模式

    • 轮询分发
      不同消费者即使消费能力不一样,但最终接受到的消息一样多
    • 公平分发
      消费能力高的消费的更多,能者多劳。

    公平分发代码实现上要注意:

    • 生产者、消费者指定:channel.basicQos(1);
    • 消费者消费完消息自动发送确认消息hannel.basicAck(envelope.getDeliveryTag(), false);
    • 消费者必须关闭自动应答:autoAck = false;

    3. 发布订阅模式(publish/subscribe)

    该模式和工作队列的区别在于:

    • 该模式模式需要显示声明fanout交换机。
    • 生产者将消息发送到交换器(Exchange),交换器绑定多个队列,然后将消息转发给绑定的所有队列,每个队列可以有多个消费者监听。

    4. 路由模式(routing)

    该模式和发布订阅的区别在于:

    • 需要申明direct交换机
    • 队列绑定交换机需要制定一个routingKey
    • 生产者发送消息时需要制定Exchange和routingKey

    5. 通配符模式(Topic)

    该模式与路由模式的区别在于:

    • 需要声明topic交换机
    • 可以设置带有通配符进行模糊匹配的routingkey

    6. Header模式

    该模式与topic不同的地方在于:

    • 需要声明header交换机
    • header模式取消routingkey,使用header中的 key/value(键值对)匹配队列。

    7. RPC模式

    相关文章

      网友评论

          本文标题:RabbitMQ 工作模式

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