RabbitMQ官方网站非常详细,以下只是本人学习过程的整理
一、Windows部署RabbitMQ:https://www.cnblogs.com/yangleiyu/p/15539618.html
二、Linux部署RabbitMQ集群:https://www.cnblogs.com/yangleiyu/p/15539698.html
三、.Net Core使用RabbitMQ各种模式:会在后续文章介绍
一、概述
1、RabbitMQ的概念
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)
RabbitMQ服务器是用Erlang语言编写的,Erlang是专门为高并发而生的语言,而集群和故障转移是构建在开发电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库
RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器
2、RabbitMQ的好处
开源,安全,可靠性高,数据能够保证百分之百的不丢失等等
3、RabbitMq的使用场景
3.1什么时候使用MQ?
1)数据驱动的任务依赖
2)上游不关心多下游执行结果
3)异步返回执行时间长
3.2什么时候不使用MQ?
需要实时关注执行结果 (同步调用)
4、RabbitMQ的几种工作模式
A、简单模式(Simple)
简单的发送与接收
B、工作模式(Work)
单发送多接收,一个生产者端,多个消费者端
C、发布订阅模式(Publish/Subscribe)
生产者端发送消息,多个消费者同时接收所有的消息
D、路由模式(Routing)
生产者按routing key发送消息,不同的消费者端按不同的routing key接收消息
E、通配符(或主题)模式(Topics ,按topic发送接收)
生产者端不只按固定的routing key发送消息,而是按字符串“匹配”发送,消费者端同样如此。
符号“#”匹配一个或多个词,符号“*”仅匹配一个词。
F、死信队列
P发送消息经X1路由到Q1,Q1的消息触发特定情况,自动把消息经X2路由到Q2,C直接消息Q2的消息。
G、延时队列
延时队列其实也是配合死信队列一起用。给队列添加消息过时时间(TTL),变成延时队列。
延时队列还可以设置不同的过期时间。
二、Windows安装RabbitMQ
1、下载安装Erlang框架
链接:https://pan.baidu.com/s/1c3SVYLrryojrZ8Pe4W0UOw
提取码:0716
2、设置环境变量
3、测试是否安装成功
运行CMD,输入erl
4、下载并安装rabbitmq-server
链接:https://pan.baidu.com/s/1zcHIIKTjjIlCNytxQnSn_A
提取码:0716
5、切换目录
cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.16\sbin
6、查看状态
rabbitmqctl status
7、启动服务
rabbitmq-plugins enable rabbitmq_management
8、浏览地址
http://127.0.0.1:15672/,进入管理页面,账户密码都是guest
9、创建用户
guest账号默认是不支持远程连接的,一般服务都不是在本地,所以需要创建用户。
A、添加用户
B、设置权限
10、常用命令
rabbitmqctl list_connections ##查看当前连接
rabbitmqctl list_queues ##列出所有队列
rabbitmqctl status ##查看当前队列信息
命令设置权限: rabbitmqctl set_permissions -p "/" kiba "." "." ".*"