1. 说明
在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对系统压力比较大。
面对这些问题,我们一般会将这些请求,放在消息队列MQ中处理;异构系统之间使用消息进行通讯。
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
消息传递相较文件传递与远程过程调用(RPC)而言,似乎更胜一筹,因为它具有更好的平台无关性,并能够很好地支持并发与异步调用。所以如果系统中出现了如下情况:
对操作的实时性要求不高,而需要执行的任务极为耗时;
存在异构系统间的整合;
一般的可以考虑引入消息队列。对于第一种情况,常常会选择消息队列来处理执行时间较长的任务。引入的消息队列就成了消息处理的缓冲区。消息队列引入的异步通信机制,使得发送方和接收方都不用等待对方返回成功消息,就可以继续执行下面的代码,从而提高了数据处理的能力。尤其是当访问量和数据流量较大的情况下,就可以结合消息队列与后台任务,通过避开高峰期对大数据进行处理,就可以有效降低数据库处理数据的负荷。
本文简单介绍在RabbitMQ这一消息代理工具,以及在.NET中如何使用RabbitMQ.
2. 下载
Rabbit MQ 是建立在强大的Erlang OTP平台上,因此切记切记安装RabbitMQ之前要先安装Erlang。
erlang:https://www.erlang.org/downloads
rabbitmq:http://www.rabbitmq.com/download.html
安装Erlang 时要注意安装的RabbityMQ 所依赖的Erlang版本,根据RabbitMQ的要求选择一个版本。
注意:如果之前安装了Erlang的其他版本,需要卸载后在进行重新安装和设置。
在开始菜单查找Erlang,点击启动 打开如下界面,那么Erlang就安装成功了。接下来就安装RabbitMQ。
3.安装配置环境变量
再讲一下先安装Erlang!!!都是直接下一步就好,或者可以自己定义文件的位置。
最后进行path的配置如下图
4.启动监控管理器
找到你安装rabbitMQ的路径,然后切换到sbin的文件夹
cmd 输入rabbitmq-plugins enable rabbitmq_management命令来启动监控管理器
然后在浏览器输入http:localhost:15672 用户名和密码默认都为guest.
5.RabbitMQ简单收发消息的使用
创建两个控制台应用并引入rabbitMQ程序包(工具---》NuGet包管理---》程序包管理器控制台)
输入Install-Package RabbitMQ.Client -Version 3.4.3 (针对于.net framework 4.0)
发送消息:
接收消息:
查看结果:
6.个人感觉不错博客等;
https://www.cnblogs.com/longlongogo/p/6489574.html
https://blog.csdn.net/i_qiangqiang/article/details/114707700