RabbitMQ实战-浅议与安装(一)

六月ゝ 毕业季﹏ 提交于 2019-12-14 09:59:00

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栏 用户情况
    在这里插入图片描述
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!