C#使用RabbitMQ

  最近公司遇到一个问题,就是在集中兑付日(基金)兑付成功后需要给客户发送兑付成功消息,提醒客户查收,但是在集中发送的过程中,因为是同步方法,会造成堵塞,而且有些客户没有关注微信号会造成发送失败,收到不

少客户的投诉,边决定使用消息队列对这个功能改造一下。 

  现在从头开始学习一下消息队列。

目录

1.关于RabbitMQ

1.1 消息队列(Message Queue,简称MQ)

1.2 为什么会产生消息队列?有几个原因:

1.3 关于RabbitMq(来自*)

1.3.1 Erlang

1.3.2 AMQP

2.如何使用消息队列

1.下载RabbitMQ 和 Erlang

2. 安装 RabbitMQ 和 Erlang

2.1 安装 Erlang

2.2 安装 RabbitMQ

3.使用RabbitMQ


1.关于RabbitMQ

在介绍RabbitMQ之前,先介绍一下消息队列

1.1 消息队列(Message Queue,简称MQ)

顾名思义,这是一个消息按顺序排列的集合,遵循的是先进先出原则,队列中存放的是Message。

其主要用途:不同进程Process/线程Thread之间通信。

1.2 为什么会产生消息队列?有几个原因:

不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;

不同进程(process)之间传递消息时,尤其是一些耗时操作,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对系统压力比较大。并且,某一个进程接受的消息太多,一下子无法处理完,为了让处理消息也按先后顺序,必须对收到的消息进行排队,同时为了实现标准化,将消息的格式规范化了,因此诞生了事实上的消息队列;

MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。本文主要介绍RabbitMq。

1.3 关于RabbitMq(来自*)

C#使用RabbitMQ

1.3.1 Erlang

C#使用RabbitMQ

1.3.2 AMQP

C#使用RabbitMQ

2.如何使用消息队列

1.下载RabbitMQ 和 Erlang

地址如下:https://www.rabbitmq.com/install-windows.html

RabbitMQ直接下载的标记1处,是3.8.1版本

C#使用RabbitMQ

然后点击2处 ,可以看到Rabbit和Erlang的版本对应关系

C#使用RabbitMQ

所以我们选的Erlang版本应该介于 21.3-22.X之间

Erlang下载地址如下:https://www.erlang.org/downloads

C#使用RabbitMQ

2. 安装 RabbitMQ 和 Erlang

这里建立安装目录要全英文且不要有空格

2.1 安装 Erlang

C#使用RabbitMQ

C#使用RabbitMQ

C#使用RabbitMQ

C#使用RabbitMQ

OK~~~~

2.2 安装 RabbitMQ

C#使用RabbitMQ

C#使用RabbitMQC#使用RabbitMQ

OKK~~~

3.使用RabbitMQ

1、首先以管理员身份打开 CMD(命令提示符),CD到安装目录的 sbin文件夹下执行 

rabbitmq-plugins enable rabbitmq_management

C#使用RabbitMQ

然后还有两个命令:

停止:net stop RabbitMQ
启动:net start RabbitMQ

2、在浏览器中输入地址查看:http://127.0.0.1:15672/
C#使用RabbitMQ
3、使用默认账号登录:guest/ guest

C#使用RabbitMQ

4、添加用户

C#使用RabbitMQ

5、用户角色
1、超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、其他
无法登陆管理控制台,通常就是普通的生产者和消费者。

6、添加Virtual Hosts(虚拟机)

C#使用RabbitMQ

7.点击用户,给用户添加权限

C#使用RabbitMQ

C#使用RabbitMQ

C#使用RabbitMQ

 

C#使用RabbitMQ