Linux中快速搭建RabbitMQ
Posted 凌波漫步&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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版本关系要求
根据官方提供的Erlang和RabbitMQ的版本对应关系图,以及操作系统版本。这里RabbitMQ的版本选择3.9.9
,Erlang的版本选择23.2
。
备注:版本对应关系图参考Erlang和RabbitMQ版本兼容性对比。
(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。
五、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。
Linux下搭建RabbitMQ(3.9.8)版本
linux下安装Rabbit MQ
确定环境
目前我们是linux 3.10的内核,centOS版本是7.5
uname -srm
cat /etc/redhat-release
查看版本依赖
https://github.com/rabbitmq/rabbitmq-server/releases,访问官方网站,我们可以看到如下依赖,这里我们就以3.9.8版本为例子,进行安装。我们可以看到官方说明:此版本至少需要 Erlang 23.2,并支持发布时最新的 Erlang 24 版本 24.1.2。
因此我们环境确定下来了,
服务器系统版本:contos 7.5
Erlang版本 :2.4
RabbitMQ 版本: 3.9.8
Erlang安装包(2.4)、RabbitMQ安装包(3.9.8)
安装Erlang2.4
来到 Erlang 官网,找到自己需要安装的版本。
https://www.erlang.org/downloads
将下载好的 Erlang ,上传到 linux 服务器上,建议上传到 /usr/local 路径下
# 解压 erlang 文件
tar -zxvf otp_src_24.0.tar.gz
# 安装 erlang 依赖工具
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
# 在当前文件下 /usr/local 下,新建 erlang文件夹 用来存环境
mkdir erlang
# 进入到 otp_src_24.0 里
cd otp_src_24.0
# 执行安装环境, 注意 --prefix=是你需要安装在那个文件夹里,一定是自己创建的空文件夹
./configure --prefix=/usr/local/erlang --without-javac
# 执行完后,预安装,安装到上面配置的 --prefix=文件夹内
make && make install
# 测试是否安装成功
./bin/erl
# 执行命令,查看是否有效
1> io:format("hello world~n", []).
# 执行结果如下图所示,则表示Erlang安装成功。
配置erlang环境变量
#编辑profile文件
vim /etc/profile
配置内容
export ERLANG=/usr/local/erlang
export PATH=$PATH:${ERLANG}/bin
刷新配置
# 刷新环境配置
source /etc/profile
# 直接输入 erl,若是可以进入以下效果,表示环境变量配置成功
erl
至此erlang2.4环境搭建完成
安装RabbitMQ 3.9.8
下载地址
https://github.com/rabbitmq/rabbitmq-server/releases
下载好后,上传上传到 /usr/local 里
安装步骤
# 解压安装 xz
xz -d rabbitmq-server-generic-unix-3.9.8.tar.xz
# 解压安装 tar
tar -xvf rabbitmq-server-generic-unix-3.9.8.tar
# 重命名 rabbitmq
mv rabbitmq_server-3.9.8/ rabbitmq
# 配置环境变量
vim /etc/profile
编辑内容
export RABBITMQ=/usr/local/rabbitmq
export PATH=$PATH:${RABBITMQ}/sbin
刷新配置
# 刷新环境变量
source /etc/profile
安装rabbitmq
# 安装页面管理插件
rabbitmq-plugins enable rabbitmq_management
# 开启服务,后台运行
rabbitmq-server -detached
# 注:添加用户和权限都要,先开启 RabbitMQ 服务
# 页面管理,用户 guest 是不能使用的,手动创建一个用户,并赋予权限
rabbitmqctl add_user admin admin
# 添加权限 .* 表示最高权限/所有权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 添加用户名角色,这里添加为 administrator (系统管理员)
rabbitmqctl set_user_tags admin administrator
# 综上修改,必须重启
rabbitmq-server restart
访问RabbitMQ
http://<IP地址>:15672,
输入用户名密码admin admin
至此安装完成
常用命令附录
名称 | 命令 |
---|---|
页面管理插件 | rabbitmq-plugins enable rabbitmq_management |
开启服务(页面形式) | rabbitmq-server |
开启服务(后台运行) | rabbitmq-server -detached |
创建用户(需要开启服务) | rabbitmqctl add_user 用户名 密码 |
设置用户权限(需要开启服务) | rabbitmqctl set_permissions -p “/” 用户名 “.” “.” “.*” |
设置用户角色(系统管理员)(需要开启服务) | rabbitmqctl set_user_tags 用户名 administrator |
服务重启 | rabbitmq-server restart |
停止服务 | rabbitmqctl stop |
查看服务状态 | rabbitmqctl status |
展示角色 | rabbitmqctl list_users |
开启某个插件(需要重启服务) | rabbitmq-plugins enable xx |
关闭某个插件(需要重启服务) | rabbitmq-plugins disable xx |
以上是关于Linux中快速搭建RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章
在Linux环境中,使用docker环境搭建notebook进行python学习,使用官方镜像快速创建docker环境,快速创建环境学习相关技术,不要把时间浪费在环境搭建上