? 简介
C# 实现消息队列的方式有很多种,比如:RabbitMQ、MSMQ、EQueue 等,本文主要介绍使用 RabbitMQ 实现消息队列入门基础。包括如下内容:
1. 什么是消息队列?
2. 什么是 RabbitMQ?
3. RabbitMQ 的安装
1. 什么是消息队列?
消息队列 MQ(全称为 Message Queue),可实现两个应用程序之间进行通信,MQ 是生成者与消费者模型的典型代表,一端往消息队列中写入消息,另一端可以读取或者订阅队列中的消息。MQ 遵循的是 AMQP 协议(高级消息队列协议:使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能)的具体实现和产品。
MQ 是一种消息中间件技术,所以它能够支持多种类型的语言开发,同时也是跨平台的通信机制,也就是说 MQ 支持将信息转化为 XML 或者 Json 等类型的数据存储到消息队列中,然后可以使用不同的语言来处理消息队列中的消息,这样就很容易的做到了信息的通信,同时也为信息的通信起到了缓冲的作用,经常会在金融项目中使用这种通信机制。
MQ 的主要作用用于提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作放入队列,再由另外一个线程去异步处理这些队列,可极大的提高系统的并发能力。
消息传递相比较文件传递与远程调用(RPC)而言,视乎更胜一筹,因为跟平台无关,并能够很好的支持并发与异步调用,所以通常用于以下情况:
1. 对操作的实时性要求不高;
2. 缓冲(消息/数据);
3. 需要执行的任务比较耗时;
4. 存在异构系统间的整合;
2. 什么是 RabbitMQ?
RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统,它遵循 Mozilla Public License 开源协议。具有多平台部署(Windows Server、Linux、其它)、多语言支持(C#、Java、PHP、Python、其它)
RabbitMQ 是部署最广泛的开源消息代理。RabbitMQ 拥有成千上万的用户,是最受欢迎的开源消息代理之一。RabbitMQ 在全球范围内的小型初创企业和大型企业中都得到使用。
RabbitMQ 轻巧,易于在内部和云中部署。它支持多种消息传递协议。RabbitMQ 可以部署在分布式和联合配置中,以满足大规模,高可用性的要求。
RabbitMQ 官方网址:https://www.rabbitmq.com/
1) RabbitMQ 的特点
支持多种消息传递协议;
分布式部署;
支持多平台部署,例如:Windows Server、Linux 等;
支持多语言运用,例如:C#、Java、PHP、Python 等;
3. RabbitMQ 的安装
1) 下载 RabbitMQ
1. 进入官网下载地址
https://www.rabbitmq.com/#getstarted
2. 点击 Download + Installation
3. 点击官网推荐的 Windows 系统的安装包
4. Windows 上安装 RabbitMQ,推荐了两个安装选项:
1) 使用 Chocolatey 安装;
Chocolatey 类似于 Nuget 软件包管理工具,这里不使用该方式安装。
2) 使用官方安装程序;
这里使用该方式进行安装,点击【Using the official installer】。
5. 这里说了,在 Windows 上运行 RabbitMQ 依赖于 Erlang 框架,所以先下载并安装它:
说明:Erlang 类似于 C# 调用的 .NET Framework 框架。
1) 点击 OTP 22.1 Windows 64-bit Binary File (264) 进行下载
2) 下载完成后进行安装(注意:需要以管理员身份安装)
默认安装在 C:\Program Files\erl10.5 目录下
3) 安装完成后,设置环境变量
系统变量 -> Path -> 编辑 -> 新建,输入:C:\Program Files\erl10.5\bin,保存即可。
4) 检查是否安装成功,运行 CMD
6. 依然是刚才的页面,下载 RabbitMQ Server
7. 下载后直接安装
默认安装在 C:\Program Files\RabbitMQ Server 目录下
8. 检查是否安装成功,运行 CMD
CD 到 RabbitMQ 的 sbin 目录下,输入:CD C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.1\sbin
检查安装状态,输入:rabbitmqctl status
启用 RabbitMQ 管理工具,输入:rabbitmq-plugins enable rabbitmq_management
进入管理页面,浏览器地址栏输入:http://127.0.0.1:15672/
另外,在 Windows 服务列表中也可以找到 RabbitMQ Server