【消息中间件RabbitMQ 】:RabbitMQ Server 的搭建

1、RabbitMQ 的概念

RabbitMQ 是有 Rabbit 公司基于 AMQP 标准开发的消息中间件,使用了 Erlang 语言开发。

什么是 AMQPAMQP全称为 Advanced Message Queuing Protocol(高级消息队列协议),是一种网络协议,专门为消息的中间件设计。

Erlang语言是一门专门为开发高并发和分布式系统的一种语言。

RabbitMQ 架构图如下:
在这里插入图片描述
下面我们对上述图片中的一些角色进行解释:

  • Produces:消息提供方,是产生数据发送消息的程序。

  • Consumer:消息消费方,是一个等待接收消息的程序。一个程序既可以是生产者又是可以是消费者。

  • Broker:接收和分发消息的应用,是 RabbitMQ 服务端。

  • Connection:Produce 或者Consumer 和 Broker之间的 TCP 连接管道

  • Channel:Channel 是在 connection 内部建立的逻辑连接,减少了建立 Connection 的开销

  • Virtual host:是 Broker 的组成部分。当多个不同的用户使用同一个 Broker 提供的服务时,可以划分出多个 Virtual host 。每一个 Virtual host 都由 一个或多个 Exchange 和 Queue 组成。

  • Exchange:交换机,是 Virtual host 的组成部分。一方面它接收来自 Produces 的消息,另一方面它将消息推送到队列中。

  • Queue:队列,是用来存放 Exchange 发送的消息,消息最终被送到这里等待 Consumer 取走,是 Virtual host 的组成部分。

  • Binding:Exchange 和 Queue 之间的虚拟连接。Exchange 通过 Binding 对接收到的消息进行处理,是发送到某个队列或者发送到多个队列等等。

2、RabbitMQ 的安装

2.1、安装 RabbitMQ

RabbitMQ 可以在 Window 或 Linux 上安装,下面我们通过阿里云的云服务器安装RabbitMQ。

使用 RabbitMQ 需要Erlang语言的安装包、Socat安装包和RabbitMQ安装包。ErlangRabbitMQ可以在官网上进行下载,但是需要注意ErlangRabbitMQ的版本,防止出现版本冲突。具体的版本对照可以参考如下网页

ErlangRabbitMQ已经上传到了云服务器上,如图所示:
在这里插入图片描述

  1. 安装 Erlang:通过rpm -ivh erlang文件名称命令安装 Erlang。
    在这里插入图片描述

  2. 安装 RabbitMQ 的依赖:通过yum install socat -y安装 socat 。
    在这里插入图片描述

  3. 安装 RabbitMQ:通过rpm -ivh RabbitMQ安装包名称命令安装。

    在这里插入图片描述

  4. 开启 RabbitMQ 的 web管理界面:通过rabbitmq-plugins enable rabbitmq_management命令开启

    在这里插入图片描述

2.2、正确启动 RabbitMQ

通过上述四步就完成了 RabbitMQ 的安装。可以通过如下命令管理 RabbitMQ :

service rabbitmq-server start #启动服务
service rabbitmq-server stop #停止服务
service rabbitmq-server restart #重启服务
service rabbitmq-server status #查看状态

在这里插入图片描述
因为我们给 RabbitMQ 安装了web 管理界面,所有我们可以通过https://ip地址:15672访问管理界面,因为服务器没有开启 15672 端口的权限,所以需要在阿里云控制台添加安全组规则:

然后可以得到访问到如下页面:

在这里插入图片描述

2.3、登录 web 管理界面

在服务器中可以通过rabbitmqctl list_users命令查看用户,在安装完 RabbitMQ 之后会有一个默认用户,用户名和密码都为guest。
在这里插入图片描述
但是 guest 登录失败:
在这里插入图片描述

RabbitMQ 从3.3.0开始禁止使用 guest/guest 通过除localhost外的访问,所以我们需要额外的创建一个用户来访问 web 管理界面。

在创建之前我们首先要去了解 RabbitMQ 中涉及到的角色:

  • administrator:超级管理员,可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
  • monitoring:监控者,可登陆管理控制台,同时可以查看节点信息。
  • policymaker:策略制定者,可登陆管理控制台, 同时可以对policy进行管理。
  • management:普通管理者,仅可登陆管理控制台。

创建用户的步骤如下:

  • 通过rabbitmqctl add_user 用户名 密码命令创建一个用户
    在这里插入图片描述
  • 通过rabbitmqctl set_user_tags admin administrator命令给角色赋予角色
    在这里插入图片描述

设置完成之后,就可以通过新创建的用户登录 web 管理界面了:
在这里插入图片描述

在进入到 web 管理界面之后,我们也可以通过界面进行用户的创建。

在这里插入图片描述

2.3、设置用户权限

RabbitMQ 也有类似与 MySQL 一样的权限管理。在 RabbitMQ 中可以存在多个 Virtual Host,每一个 Virtual Host 就相当于 MySQL 中的数据库。那么就需要给用户设置某个或多个 Virtual Host 的配置和读写的权限,只有设置了权限之后,才能对某个 Virtual Host 进行操作。

在这里插入图片描述
我们可以通过rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>用户给用户设置权限,具体写法如rabbitmqctl set_permissions -p "/" long ".*" ".*" ".*"给 long 这个用户设置对 / 这个默认 Virtual Host配置和读写的权限。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值