Linux中快速搭建RabbitMQ

简介: Linux中快速搭建RabbitMQ

一、简介


1、关于RabbitMQ


RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写,支持多种客户端。用于在分布式系统存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。


2、RabbitMQ主要端口介绍


RabbitMQ会绑定一些端口,安装完后,需要将这些端口添加至防火墙。

  • 4369:Erlang的端口/节点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。
  • 5672 / 5671:AMQP 0-9-1和1.0客户端端口,没有使用SSL和使用SSL的端口。
  • 15672:HTTP_API端口,管理员用户才能访问,用于管理RabbitMQ,需要启用management插件。
  • 25672:用于RabbitMQ节点见和CLI工具通信,配合4369使用。


二、RabbitMQ安装

1、安装依赖项socat

sudo yum install -y socat


2、下载Erlang和RabbitMQ


(1) Erlang和RabbitMQ版本关系要求


根据官方提供的ErlangRabbitMQ的版本对应关系图,以及操作系统版本。这里RabbitMQ的版本选择3.9.9Erlang的版本选择23.2


15677bd87548416b803a93d98cfc5933.png


备注:版本对应关系图参考ErlangRabbitMQ版本兼容性对比

(2) 下载操作系统支持的Erlang和RabbitMQ版本

直接下载RabbitMQ官网提供的Erlang rpm包,选择的版本为:erlang-23.2.7-2.el7

RabbitMQ选择的版本为:rabbitmq-server-3.9.9-1.el7

备注:由于CentOS的版本为7,这里下载的是该操作系统版本支持的最大Erlang版本。

(3) 安装Erlang和RabbitMQ


sudo rpm -Uvh /opt/appl/rabbitmq/erlang-23.2.7-2.el7.x86_64.rpm
sudo rpm -Uvh /opt/appl/rabbitmq/rabbitmq-server-3.9.9-1.el7.noarch.rpm

三、启动和关闭

1、启动服务

sudo systemctl start rabbitmq-server


2、查看状态

sudo systemctl status rabbitmq-server


3、停止服务

sudo systemctl stop rabbitmq-server


4、设置开机自启

sudo systemctl enable rabbitmq-server


四、RabbitMQ服务器配置

RabbitMQ有一套默认配置,能够满足日常开发需求,如果需要修改,需要自己创建一个配置文件。

touch /etc/rabbitmq/rabbitmq.conf


各操作系统配置文件默认位置如下图,配置文件示例请参考:rabbitmq.conf.example

ff7663e17b584bd5ab543d86bff8a0d2.png


五、RabbitMQ管理界面

1、开启插件

rabbitmq-plugins enable rabbitmq_management


2、添加用户

rabbitmqctl add_user admin admin


备注:这里我们添加了用户名和密码都为admin的用户。

3、为用户分配控制台操作权限

rabbitmqctl set_user_tags admin administrator


备注:这里的意思是给admin用户授予RabbitMQ管理控制台administrator角色。

4、为用户分配资源权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"


备注:这里配置的是admin用户在virtual host “/” 下的资源读写等权限。

第1个 ".*"代表赋予实体配置权限。

第2个 ".*"代表赋予实体写权限。

第3个 ".*"代表赋予实体读权限。


5、RabbitMQ控制台角色介绍


RabbitMQ的用户角色主要有:none、management、policymaker、monitoring、administrator。


none:不能访问management plugin。


management:用户可以通过AMQP做任何事,外加:

  • 列出自己可以通过AMQP登入的virtual hosts。
  • 查看自己的virtual hosts中的queues,exchanges和bindings。
  • 查看和关闭自己的channels和connections。
  • 查看有关自己的virtual hosts的“全局”统计信息,包含其它用户在这些virtual hosts中的活动。

policymaker:除management角色外还可外加:

  • 查看、创建和删除自己的virtual hosts所属的policies和parameters。

monitoring:除management角色外还可外加:

  • 列出所有的virtual hosts,包括他们不能登录的virtual hosts。
  • 查看其它yoghurt的connections和channels。
  • 查看节点级别的数据,如clustering和memory使用情况。
  • 查看真正关于所有virtual hosts的全局统计信息。

administrator:除policymaker和monitoring还可以做:

  • 创建和删除virtual hosts。
  • 查看、创建和删除users。
  • 查看创建和删除permissions。
  • 关闭其它用户的connections。


6、登录RabbitMQ管理界面


前面提到过15672是RabbitMQ控制台端口,浏览器输入http://127.0.0.1:15672,即可进入登录页面,如下:


25e5be0c7156498fb9d0d0a1e3813ad6.png


备注:用户名和密码都为admin,前面我们已经授予了admin用户adminstrator角色。



a6f6578eb8284ab38e83e47282980b11.png


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7月前
|
消息中间件 Linux 数据安全/隐私保护
linux mq的安装并设置开机启动 图文!!
linux mq的安装并设置开机启动 图文!!
255 0
|
7月前
|
消息中间件 Java Linux
Linux下RabbitMQ安装与使用
Linux下RabbitMQ安装与使用
122 1
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
消息中间件 Linux
linux之centos安装rabbitmq
linux之centos安装rabbitmq
|
4月前
|
消息中间件 Unix Linux
在Linux中,RabbitMQ是什么?
在Linux中,RabbitMQ是什么?
|
5月前
|
监控 网络协议 物联网
一款轻量级的通信协议---MQTT (内含Linux环境搭建)
**MQTT协议摘要** MQTT是一种轻量级的发布/订阅型网络协议,适用于低带宽、高延迟或不可靠的网络环境,尤其适合物联网(IoT)设备。其主要特点包括: 1. **发布/订阅模型**:设备通过主题进行通信,发布者无需知道订阅者,订阅者也不需知道消息来源。 2. **轻量级**:协议头部小,减少网络负载,适合资源受限的设备。 3. **断线重连**:支持客户端在失去连接后重新连接,保持通信。 4. **服务质量级别(QoS)**:提供0(最多一次)、1(至少一次)和2(恰好一次)三种级别,保证消息传递的可靠性。
111 0
|
7月前
|
消息中间件 Java Linux
RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成
RabbitMQ教程:Linux下安装、基本命令与Spring Boot集成
|
7月前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)
112 0
|
2月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
116 6
|
2月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
97 9