• RabbitMQ简介


    什么是RabbitMQ?

            RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端

    什么是AMQP协议?

            AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

    RabbitMQ的架构

     RabbitMQ的工作模式 共六种

    WorkQueues

    与入门的简单模式相比多了一个或多个消费端

    对于任务重的或任务较多的情况可以提高处理速度,队列里1000条消息等待消费,c1和c2可均消费,不会出现重复消费。

    Pub/Sub订阅模式

     这里引入的新的角色X,就是我们所说的交换机,它可以绑定一个或者多个队列,而且可以选择分发模式​​​​​​

    • direct  直连交换机   可以选择性的分发
    • fanout  扇形交换机  分发给绑定的全部队列
    • topic    主题交换机   可以利用通配符匹配
    • headers  headers信息类型交换机,此类型交换机不通过routingkey路由键来分发消息,而是通过消息内容中的headers属性来进行匹配。headers类型交换器性能差,在实际中并不常用

     routing路由模式

            消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;

    topic 主题模式(路由模式的一种)

    1. 星号井号代表通配符

    2. 星号代表多个单词,井号代表一个单词

    3. 路由功能添加模糊匹配

    4. 消息产生者产生消息,把消息交给交换机

    5. 交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费

  • 相关阅读:
    用两行代码实现重试功能,spring-retry真是简单而优雅
    0095 贪心算法,普利姆算法
    第8章 丰富你的程序——运用手机多媒体
    马斯克回应被联合国逼捐?发中文《七步诗》引热议
    ai智能电话语音机器人,ai外呼机器人怎么用
    Python面试高频问题:self到底是什么
    自动驾驶辅助系统性能评估工具MXeval4.1版本更新快讯
    Abp Quartz配置Sqlite
    海量小文件传输对于企业选用文件传输软件的重要意义
    CentOS安装nodejs
  • 原文地址:https://blog.csdn.net/weixin_58473601/article/details/125412927