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

Posted 白衣无暇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十四)笔记.net学习之RabbitMQ工作模式相关的知识,希望对你有一定的参考价值。

RabbitMQ在.net中简单使用

一、简单模式

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后得所有消息

此处使用“*”,也就是说只接收湖北相关得信息。

以上是关于(十四)笔记.net学习之RabbitMQ工作模式的主要内容,如果未能解决你的问题,请参考以下文章

(转)OpenFire源码学习之十四:插件管理

学相伴狂神说 RabbitMQ笔记(简单使用RabbitMQ)

学相伴狂神说 RabbitMQ笔记(简单使用RabbitMQ)

学相伴狂神说 RabbitMQ笔记(简单使用RabbitMQ)

设计模式学习之工厂模式[转]

Android学习之基础知识十四 — Android特色开发之基于位置的服务