(十四)笔记.net学习之RabbitMQ工作模式
创始人
2024-03-21 22:20:45
0

RabbitMQ在.net中简单使用

  • 一、简单模式
      • 1.生产者
      • 2.消费者
  • 二、工作队列模式
      • 1.工作队列模式介绍
      • 2.生产者发送消息
      • 3.消费能力
  • 三、发布/订阅模式
      • 1.介绍
      • 2.生产者
      • 3.消费者
  • 四、Routing路由模式
      • 1.介绍
      • 2.生产着
      • 3.消费者
  • 五、topic 主题模式
      • 1.介绍
      • 2. 生产者
      • 3.消费者

一、简单模式

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后得所有消息
在这里插入图片描述
此处使用“*”,也就是说只接收湖北相关得信息。
在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...