• RabbitMQ++:常用的5种工作模式


    1、点对点(简单)的队列

    不需要交换机 一个生产者,一个消费者

    2、工作队列(公平性)

    不需要交换机

    一个生产者,多个消费者,但是一个消息只会发送给一个队列(竞争的消费者模式)

    默认是轮询,即会将消息轮流发给多个消费者,但这样对消费得比较慢的消费者不公平

    可采用公平分配,即能者多劳channel.basicQos(1);// 限定:发送一条信息给消费者A,消费者A未反馈处理结果之前,不会再次发送信息给消费者

    // 取消自动反馈 Aboolean autoAck = false;

    // 接收信息 channel.basicConsume(QUEUE_NAME, autoAck, consumer);

    // 反馈消息处理完毕 channel.basicAck(envelope.getDeliveryTag(), false);

    3、发布/订阅

    一个生产者,多个消费者

    每一个消费者都有自己的一个队列

    生产者没有直接发消息到队列中,而是发送到交换机

    每个消费者的队列都绑定到交换机上

    消息通过交换机到达每个消费者的队列

    该模式就是Fanout Exchange(扇型交换机)将消息路由给绑定到它身上的所有队列

    4、路由

    生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要制定路由key(key匹配就能接受消息,key不匹配就不能接受消息)

    该模式采用Direct exchange(直连交换机)

    5、主题(通配符)

    此模式实在路由key模式的基础上,使用了通配符来管理消费者接收消息。生产者P发送消息到交换机X,交换机根据绑定队列的routing key的值进行通配符匹配

    符号#:匹配一个或者多个词lazy.# 可以匹配lazy.irs或者lazy.irs.cor

    符号*:只能匹配一个词lazy.* 可以匹配lazy.irs或者lazy.cor

    该模式采用Topic exchange(主题交换机)

    引:https://blog.csdn.net/weixin_39776991/article/details/111618735

  • 相关阅读:
    使用sourcetree 出现 For user git on host github.com 解决方案
    iOS App Store下载的付费软件 重新签名后 安装到未越狱的手机上
    Swift 入门之简单语法(一)
    [转]C语言指针 之 结构体指针
    Xcode 菜单详解 [转载自用]
    C语言笔记-字符串+转义符(写起来想砸键盘)
    C语言笔记-getchar等蛋疼设定 [可能已解决]
    C语言笔记-枚举类型
    C语言笔记-数据类型长度
    C语言笔记-函数-存储期和作用域
  • 原文地址:https://www.cnblogs.com/codingmode/p/16359396.html
Copyright © 2020-2023  润新知