1.MQ浅议
MQ是Message Queue的简称,我们也称之为消息队列。MQ是应用与应用之间的通信方法,两端的应用不进行直接调用,而是通过一方推送、一方消费的模式完成消息交换,避免了两个应用之间的依赖与耦合。
MQ框架需遵循AMQP协议,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。(粘贴自百度)
类似的MQ框架有很多,应用比较广泛的有RabbitMQ,Kafka,RocketMQ等,其中要着重介绍的是RocketMQ,它是由阿里开源并线上应用的消息框架,经过淘宝双十一等高可用场景下的考验,我司在阿里云上就购买了RocketMQ的线上应用,效果非常好。
我们今天要介绍的是另外一种MQ框架RabbitMQ,通过这张表格,我们可以比较直观的看到各MQ框架在应用场景、吞吐量等多方面的优劣,所以综合考虑,我们选择学习RabbitMQ。
2.RabbitMQ介绍
网上对RabbitMQ的介绍有很多,我们这里就不在多做赘述了,简单点讲RabbitMQ是一款由Erlang语言开发的,遵循AMQP协议,支持Python、Java、Ruby、PHP、C#、JavaScript、Go、Elixir、Objective-C、Swift等多种语言,提供可负载的、可持久化的消息队列产品。
2.1 六种队列模式
(1)Hello World 模式 单一的消费者 和 生产者 这个模式 不会常用 应该算是入门的例子
(2)Work queues模式 一个生产者 可以指定多个消费者
(3)发布/订阅模式 发布订阅模式 所有的消费者 收到的消息都是相同的
举例:大家都关注的生产者A 那么 消费者 B1 B2 可以收到生产者A的所有消息
(4)路由器模式 通过路由器规则 根据规则 将消息有分类的推送给 不同的消费者
举例:生产者A生产了5条消息 虽然消费者 B1 B2都做了订阅 但是根据路由器规则 会把B1规则的数据推送个B1 会把B2规则的数据推送给B2
(5)主题模式 这个模式与路由器模式比较类似 路由器模式是必须精准匹配 而主题模式 是可以模糊的
(6)RPC模式 实现远程调用 ,这种模式本次课程中不做讲解。
2.2 关键名词
- producer 生产者 消息的生产者和发起者。
- consumer 消费者 消息的消费者,通过与队列相连,消费相应分配给它的消息。
- queue 队列 队列可以与交换机绑定,给消费者提供相应的信息。
- exchange 交换机 消息分发节点。
- Vhost 虚拟主机 可以理解为数据库,一个RabbitMQ中存在多个虚拟主机。
3.安装
RabbitMQ支持多种操作系统环境下的安装,如Windows、CentOS、Ubuntu等,今天的教程我们着重演示windows和CentOS的安装方法。
3.1 下载安装包
- 下载前置环境
首先,我们需要下载rabbitMQ的运行环境,网址 https://www.erlang.org/downloads - 下载rabbitMQ安装包
网址 https://www.rabbitmq.com/install-windows.html - 福利来了
我已经将安装包下载好了,并上传到网盘,供大家下载。
https://pan.baidu.com/s/1nd5X_2YrpXIOZ5f9qaS2bg 提取码 lk1w
3.2 windows安装
- 先安装 erlang环境包,再安装rabbitMQ安装包,一路下一步,无脑安装即可。
- 启动MQ
进入控制台,进入安装目录 输入 cd sbin
执行命令 rabbitmq-plugins.bat enable rabbitmq_management - 登录
打开浏览器 输入 http://localhost:15672
账号 密码 guest/guest
如下图,证明安装成功了 。
3.3 CentOS安装
- 安装 erlang环境包
执行命令 rpm -ivh --nodeps esl-erlang_22.1.8-1_centos_7_amd64.rpm - 安装 rabbitmq安装包
执行命令 rpm -ivh --nodeps rabbitmq-server-3.8.1-1.el6.noarch.rpm - 启动服务
(1) rabbitmq-plugins enable rabbitmq_management
(2) rabbitmq-server
如果用户权限不足 会报错 请执行 chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie 进行授权
如下图,服务启动成功 - 配置访问端口
rabbitMQ 默认访问端口为 15672 和 5672
设置后,记得重载下防火墙 否则不生效 - 验证是否成功 通过宿主机浏览器访问虚拟机IP:15672 访问成功 guest : guest
4.管理后台
guest用户是超管用户,所以只允许在RabbitMQ的服务器上安装,其他通过IP访问的机器是无法登录的。
主界面介绍:
- Overview栏 整体信息展示。
- Connections栏 连接情况
- Channels栏 通道情况
- Exchanges栏 交换机情况 (重点)
- Queues栏 队列情况 (重点)
- Admin栏 用户情况
来源:CSDN
作者:castle1983
链接:https://blog.csdn.net/weixin_36008116/article/details/103464392