阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RabbitMQ二进制和RPM安装部署与常用命令

214次阅读
没有评论

共计 4678 个字符,预计需要花费 12 分钟才能阅读完成。

一 rabbitmq 简介

RabbitMQ 是当今最主流的消息中间件之一。它是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现优异。

在安装 rabbitmq 的时候需要注意 rabbitmq 和 erlang 版本的关系,如果两者关系不一一对应的话,那么会导致出错的。
rabbitmq 版本和 erlang 的关系

RabbitMQ 二进制和 RPM 安装部署与常用命令

我们接下来的安装的版本和环境是:

  • 系统平台:CentOS 7
  • erlang 版本:21.2
  • rabbit-server 版本:3.7.12

rabbit-server 默认使用的端口:
5672(AMQP 端口) 和 15672(web), 还有其他不常用端口未列出,见官网。
如在公网上访问,需要开放这两个端口。

二 erlang 安装

  • 2.1 安装依赖包
yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel
  • 2.2 下载 erlang 依赖包
cd  /tmp && wget http://erlang.org/download/otp_src_21.2.tar.gz
  • 2.3 解压
tar xzf otp_src_21.2.tar.gz
  • 2.4 创建文件夹
mkdir /usr/local/erlang
  • 2.5 编译并安装 erlang
cd otp_src_21.2
./configure --prefix=/usr/local/erlang --without-javac
make && make install
  • 2.6 添加环境变量
vi + /etc/profile
# 添加以下内容
export PATH=$PATH:/usr/local/erlang/bin
  • 2.7 让环境变量生效
source /etc/profile
  • 2.8 检验安装
erl -version
# 能够正确输出下面的内容表示安装完成
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.2

三 rabbitmq rpm 安装 (二进制安装和 rpm 安装二选一)

安装 rabbitmq 前必须先安装符合要求的 erlang

  • 3.1 下载 RabbitMQ 安装包。
cd /tmp &&  wget  https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.12/rabbitmq-server-3.7.12-1.el7.noarch.rpm
  • 3.2 导入签名密钥。
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  • 3.3 安装 socat
yum install socat -y
  • 3.3 安装 RabbitMQ Server。
yum install  rabbitmq-server-3.7.12-1.el7.noarch.rpm  

如果在此遇到的错误见文章第七点显示的错误收录

  • 3.4 允许 RabbitMQ 开机自启动。
systemctl enable rabbitmq-server
  • 3.5 启动 RabbitMQ。
systemctl start rabbitmq-server
  • 3.6 暂停 RabbitMQ。
systemctl stop rabbitmq-server

四 rabbitmq 二进制安装 (rpm 安装和二进制安装二选一)

安装 rabbitmq 前必须先安装符合要求的 erlang

  • 4.1 下载 rabbitmq 二进制安装
cd /tmp && wget   https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.12/rabbitmq-server-generic-unix-3.7.12.tar.xz
  • 4.2 解压
tar -xf  rabbitmq-server*.tar.xz
  • 4.3 移动到指定路径
mv  /tmp/rabbitmq_server-3.7.12  /usr/local/rabbitmq_server
  • 4.4 添加环境变量
vi + /etc/profile
# 添加以下内容
export PATH=$PATH:/usr/local/rabbitmq_server/sbin
  • 4.5 环境变量生效
source /etc/profile
  • 4.6 启动 rabbitmq server
rabbitmq-server 
  • 4.7 后台启动
rabbitmq-server -detached
  • 4.8 关闭 rabbitmq
rabbitmqctl shutdown
  • 4.9 创建配置文件

在 $ RABBITMQ_HOME 的目录下创建

#rabbitmq 配置文件 
touch  ./etc/rabbitmq/rabbitmq.conf
#rabbitmq 环境变量文件
touch ./etc/rabbitmq/rabbitmq-env.conf
  • 4.10 设定 rabbitmq 的家目录路径
vim ./sbin/rabbitmq-defaults
# 修改 SYS_PREFIX =
SYS_PREFIX =rabbitmq 家目录路径。

五 初始化并配置用户和启用 web 界面

  • 5.1 删除默认用户

对于生产环境,请删除默认用户 (guest), 默认用户只能从 localhost 连接。

 rabbitmqctl delete_user guest
  • 5.2 创建新用户并设置为管理员

建议每个应用程序都使用单独的用户。

 rabbitmqctl add_user 用户名 密码
 rabbitmqctl set_user_tags 用户名 administrator
  • 5.3 设置用户权限

设置用户 djx 具有 / 这个 virtual host 的所有的资源的配置、写、读权限

rabbitmqctl  set_permissions -p / djx  '.*' '.*' '.*'
  • 5.4 启用 web 界面
 rabbitmq-plugins enable rabbitmq_management
  • 5.5 访问

访问路径: http://ip:15672
出现以下界面就意味着搭建成功了

RabbitMQ 二进制和 RPM 安装部署与常用命令
RabbitMQ 二进制和 RPM 安装部署与常用命令

六 常用命令

官网文档链接

  • 6.1 查看 rabbitmq server 状态
rabbitmqctl status
  • 6.2 查看已用的组件,内存使用情况,警报
rabbitmq-diagnostics status
  • 6.3 查看有效的节点配置
rabbitmq-diagnostics environment
  • 6.4 对本地节点执行更广泛的运行状况检查
rabbitmq-diagnostics node_health_check
  • 6.5 virtual host 操作
 每个 VirtualHost 相当于一个相对独立的 RabbitMQ 服务器,每个 virtual host 相互隔离
#  添加 virtual host
rabbitmqctl add_vhost ${hostname}

# 删除 virtual host
rabbitmqctl delete_vhost ${hostname}

# 列出所有的 virtual host
rabbitmqctl list_vhosts name tracing
# 设置某个用户对于某个 host 的权限
set_permissions [-p vhost] user conf write read

示例 1:rabbitmqctl set_permissions -p my-vhost janeway“^janeway-.*”“.*”“.*”表示设置用户 janeway 对于 host 名为 my-vhost 的以 janeway- 为开头的资源具有读写权限
示例 2:rabbitmqctl set_permissions -p my-vhost djx“.*”“.*”“.*”表示设置用户 djx 对于 host 名为 my-vhost 的所有的资源具有读写权限

# 删除用户权限
clear_permissions [-p vhost] username
示例:rabbitmqctl clear_permissions -p my-vhost janeway
删除用户 janeway 对 host my-vhost 的权限

# 查看 virtual host 已有的用户和权限
rabbitmqctl  list_permissions -p ${主机名}
  • 6.6 用户操作
# 添加用户
rabbitmqctl add_user {用户名} {密码}

# 设置用户角色,除了管理员用户,还有监控者 (monitoring),普通管理者 (management),策略制定者 (policymaker)
    management 
    User can access the management plugin 
    policymaker 
    User can access the management plugin and manage policies and parameters for the vhosts they have access to. 
    monitoring 
    User can access the management plugin and see all connections and channels as well as node-related information. 
    administrator 
    User can do everything monitoring can do, manage users, vhosts and permissions, close other user’s connections, and manage policies and parameters for all vhosts.
示例
rabbitmqctl set_user_tags {用户名} administrator/monitoring/management

# 查看用户列表
rabbitmqctl list_users 

# 给用户赋予权限
rabbitmqctl  set_permissions -p {virtual host 名称} 用户名 配置权限 写权限 读权限
示例
rabbitmqctl  set_permissions -p / djx  '.*' '.*' '.*'

# 查看用户权限
 rabbitmqctl  list_user_permissions {用户名}
 
# 查看已有的用户和权限
rabbitmqctl  list_permissions -p '{virtual host 名}'

# 删除用户 
rabbitmqctl delete_user {用户名}

# 修改用户的密码
rabbitmqctl change_password {用户名} {新密码} 

七 错误解决方法

  • 问题 1

如果在 yum install rabbitmq-server-3.7.12-1.el7.noarch.rpm 遇到了 erlang 依赖错误的话,

RabbitMQ 二进制和 RPM 安装部署与常用命令

实际我们是已经安装 erlang,但是 rabbitmq-server 还是检测不到, 我重载了环境变量还是不行。

解决办法

先忽略依赖问题安装

rpm -i --nodeps rabbitmq-server-3.7.12-1.el7.noarch.rpm

然后更改 rabbitmq 的启动加载的环境配置文件 /usr/lib/rabbitmq/bin/rabbitmq-env。在里面开头添加

source  /etc/profile

或者尝试方法:添加一个软连接

ln -s /usr/local/erlang/bin/erl      /usr/bin/erl

八 rabbitmq 生产环境应该注意的地方

见文章 RabbitMQ 生产环境配置详解 https://www.linuxidc.com/Linux/2019-03/157354.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4678字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中