消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
RabbitMQ
工作流:1.先建立链接(connection)(一般初始化处理)
2.创建链接中的频道(channel) (一般初始化处理)
3.定义交换机(exchange) 设置名称,类型等属性(一般初始化处理)
4.定义一个队列(queue) 设置名称等属性(一般初始化处理)
5.使用RoutingKey 在exchange和queue之间建立绑定关系(一般在订阅的时候处理)
6.客户端将消息发送到交换机
7.交换机接收到消息根据RoutingKey和绑定信息将消息投放到一个或多个队列中
三种工作模式
基本工作模式:就是发送消息到指定队列,消费端消费指定队列
work工作模式:发送消息到指定队列,多个消费端绑定队列进行消费,默认循环调度消费策略,可设置消费端属性改为均衡调度
发布订阅模式:具体分为三种类型 Direct、Fanout、Topic
持久化方式:交换机持久化,队列持久化以及消息持久化,
具体代码demo c#实现
参考文章:
RabbitMQ实战指南
RabbitMQ入门看这篇就够了
.NET操作RabbitMQ组件EasyNetQ使用中文简版文档
.NET使用RabbitMQ详解