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版本关系要求

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

备注:版本对应关系图参考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


五、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的用户角色主要有:nonemanagementpolicymakermonitoringadministrator

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下快速搭建php开发环境

在Linux环境中,使用docker环境搭建notebook进行python学习,使用官方镜像快速创建docker环境,快速创建环境学习相关技术,不要把时间浪费在环境搭建上

Linux下快速搭建Java开发/测试环境笔记

Linux下快速搭建Java开发/测试环境笔记

Linux 快速搭建MongoDB分片集群

linux环境快速搭建sftp服务以及设置免密