• (十四)笔记.net学习之RabbitMQ工作模式


    一、简单模式

    1.生产者

    创建RabbitMQ工厂,将基础信息放入进去
    ​​​​​​​​​​在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.消费者

    创建连接信息则是和生产者一样
    在这里插入图片描述
    在这里插入图片描述

    二、工作队列模式

    1.工作队列模式介绍

    工作队列模式(Work Queues)与简单模式代码几乎是一样得,可以完全复制,对多个消费者发送信息。如下图得模式
    在这里插入图片描述

    2.生产者发送消息

    在这里插入图片描述
    唯一不同得是消费者在接收消息是得队列名称
    在这里插入图片描述

    3.消费能力

    设置不同得消费者,不同得消费能力,当basicQos函数得第二个参数设置为1时,则每次只接收一条信息,每接收一条处理一条
    在这里插入图片描述

    三、发布/订阅模式

    1.介绍

    无选择接收消息,一个消息生产者,一个交换器,多个消息队列,多个消费者。称为发布/订阅模式。

    简单队列模式和工作模式只能消费同种消息

    门户网站,用户在注册完后一般都会发送消息通知用户注册成功(失败)。

    如果在一个系统中,用户注册信息有邮箱、手机号,那么在注册完后会向邮箱和手机号都发送注册完成信息(假设都发送)。

    利用 MQ 实现业务异步处理,如果是用工作队列的话,就会声明一个注册信息队列。注册完成之后生产者会向队列提交一条注册数据,消费者取出数据同时向邮箱以及手机号发送两条消息。但是实际上邮箱和手机号信息发送实际上是不同的业务逻辑,不应该放在一块处理。

    这个时候就可以利用发布/订阅模式将消息发送到转换机(EXCHANGE),声明两个不同的队列(邮箱、手机),并绑定到交换机。这样生产者只需要发布一次消息,两个队列都会接收到消息发给对应的消费者
    在这里插入图片描述

    2.生产者

    生产者发送天气方法,声明队列可以在消费者那边声明。
    在这里插入图片描述

    3.消费者

    消费者1百度,接收天气消息
    在这里插入图片描述
    如果增加一个消费者2, 只需改变绑定即可
    在这里插入图片描述
    增加其它得也是如此。
    在这里插入图片描述
    与工作队列不同得是,多了声明交换机和绑定交换机得步骤,其中ExchangeType为选择交换机类型。
    在这里插入图片描述

    四、Routing路由模式

    1.介绍

    路由模式为生产者发送的消息主要根据定义的路由规则决定往哪个队列发送。
    在这个模式中,交换机和队列绑定得时候多了一个筛选步骤,也就是多了一个routingkey.
    在这里插入图片描述

    2.生产着

    首先设定好RoutingKey
    在这里插入图片描述

    3.消费者

    在消费者这边也必须绑定生产者发送得RoutingKey才能接收指定得消息如下所示
    在这里插入图片描述
    其它消费者也是如此
    在这里插入图片描述
    运行结果,可以看到和我们指定得是一样得
    在这里插入图片描述

    五、topic 主题模式

    1.介绍

    主题模式为生产者,一个交换机(topicExchange),模糊匹配路由规则,多个队列,多个消费者。

    1. Topic类型与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定RoutingKey的时候使用通配符。
    2. RoutingKey一般都是由一个或多个单词组成,多个单词之间以“.”分隔,例如:
      item.insert
    3. 通配符规则:#匹配一个或多个词,*恰好匹配一个词,例如item.#能够匹配item.insert.user或者item.insert,item.*只能匹配item.insert或者item.user

    2. 生产者

    此处生产者可以与路由模式相同,没有变化
    在这里插入图片描述

    3.消费者

    如下图,routingKey处使用得是“#”,也就是说接收有关china后得所有消息
    在这里插入图片描述
    此处使用“*”,也就是说只接收湖北相关得信息。
    在这里插入图片描述

  • 相关阅读:
    el-table父子展示不同内容;隐藏内层选择器;列添加不同颜色
    【C++游戏引擎Easy2D】基于Node节点展开的Text文本拓展详解
    Go编译原理系列8(变量捕获)
    Linux 文件 & 目录管理 & 链接
    HTTP和HTTPS
    图扑软件数字孪生油气管道站,搭建油气运输管控平台
    LabVIEW做仪器测试不知道是否适用
    STM32将FreeRTOS移植到用CubeMX生成的HAL库中
    GPO:部署 ADMX/ADML Template
    CodeForces刷题C语言:Army、Blinds、Cubical Planet、Find Color、Translation
  • 原文地址:https://blog.csdn.net/liuwanying0226/article/details/128204731