RabbitMQ 官网:https://www.rabbitmq.com/
1. 环境阐明
root@xjr-pc:/etc/init.d# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
- linux 版本:Ubuntu 18.04.1 LTS
- erlang 版本:erlang-24.0
- rabbitmq 版本:rabbitmq_server-3.9.19
2. 源码装置 Erlang,RabbitMQ
Rabbitmq 采纳 erlang 语言开发,所以在装置 rabbitmq 之前,须要装置 erlang。
2.1. 下载 Erlang 和 RabbitMQ 源码包
Erlang 官网下载地址:http://www.erlang.org/download
抉择 opt_src_版本号.tar.gz(这里我抉择的是 otp_src_24.0.tar.gz)
Linux 服务器上应用 wget http://www.erlang.org/download/otp_src_24.0.tar.gz 进行下载
wget http://www.erlang.org/download/otp_src_24.0.tar.gz
RabbitMQ 官网下载:https://www.rabbitmq.com/download.html
Linux 服务器上通过 wget 下载:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.19/rabbitmq-server-generic-unix-3.9.19.tar.xz
2.2. 装置 Erlang
- 上传并解压 Erlang 安装包
root@xjr-pc:/www/server/src# pwd
/www/server/src
root@xjr-pc:/www/server/src# tar -zxvf otp_src_24.0.tar.gz
root@xjr-pc:/www/server/src# ll
total 102300
drwxr-xr-x 3 root root 4096 May 4 04:07 ./
drwxr-xr-x 12 root root 4096 May 4 03:45 ../
drwxr-xr-x 12 2004 uucp 4096 May 11 2021 otp_src_24.0/
-rw-r--r-- 1 root root 101193664 May 12 2021 otp_src_24.0.tar.gz
- 编译装置 Erlang
# 创立 Erlang 装置目录
root@xjr-pc:/www/server# mkdir -p /www/server/erlang
#进入 otp_src_24 目录(解压目录)root@xjr-pc:/www/server/src/otp_src_24.0# pwd
/www/server/src/otp_src_24.0
root@xjr-pc:/www/server/src/otp_src_24.0# ./configure prefix=/www/server/erlang
root@xjr-pc:/www/server/src/otp_src_24.0# make && make install
#装置实现后进入装置门路目录
root@xjr-pc:/www/server/erlang# pwd
/www/server/erlang
root@xjr-pc:/www/server/erlang# ll
total 16
drwxr-xr-x 4 root root 4096 May 4 04:18 ./
drwxr-xr-x 13 root root 4096 May 4 04:10 ../
drwxr-xr-x 2 root root 4096 May 4 04:19 bin/
drwxr-xr-x 3 root root 4096 May 4 04:18 lib/
- 配置环境变量 和 查看 Erlang 是否装置胜利
# 将 Erlang 装置门路 /bin 增加到环境变量
root@xjr-pc:/etc/profile.d# pwd
/etc/profile.d
root@xjr-pc:/etc/profile.d# cat erlang.sh
ERLANG_HOME=/www/server/erlang
PATH=$PATH:$ERLANG_HOME/bin
export PATH
root@xjr-pc:/etc/profile.d# source /etc/profile
# 运行 erl
root@xjr-pc:/etc/profile.d# erl
Erlang/OTP 24 [erts-12.0] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit]
Eshell V12.0 (abort with ^G)
1> halt().
root@xjr-pc:/etc/profile.d#
2.3. 装置 RabbitMQ
装置 RabbitMQ 前须要确认 erlang 装置胜利
# 解压 rabbitmq-server-generic-unix-3.9.19.tar.xz
root@xjr-pc:/www/server/src# xz -d rabbitmq-server-generic-unix-3.9.19.tar.xz
root@xjr-pc:/www/server/src# tar -xvf rabbitmq-server-generic-unix-3.9.19.tar
root@xjr-pc:/www/server/src# mv rabbitmq-server-generic-unix-3.9.19 /www/server/rabbitmq
# 配置 RabbitMQ 环境变量
root@xjr-pc:/etc/profile.d# pwd
/etc/profile.d
root@xjr-pc:/etc/profile.d# cat rabbitmq.sh
RABBITMQ_HOME=/www/server/rabbitMQ
PATH=$PATH:$RABBITMQ_HOME/sbin
export PATH
root@xjr-pc:/etc/profile.d# source /etc/profile
# 后盾启动 RabbitMQ
root@xjr-pc:/www/server# rabbitmq-server -detached
# 查看端口 5672 存在示意启动胜利
root@xjr-pc:/www/server# ss -tnlp|grep 5672
LISTEN 0 128 0.0.0.0:25672 0.0.0.0:* users:(("beam.smp",pid=11688,fd=19))
LISTEN 0 128 *:5672 *:* users:(("beam.smp",pid=11688,fd=34))
# 增加 rabbitmq 浏览器治理插件
root@xjr-pc:/www/server# rabbitmq-plugins enable rabbitmq_management
# RabbitMQ 有默认用户名明码 guest/guest,该用户名明码只能在本地登陆
# 如若在浏览器中登陆,须新创建用户名明码
# 增加用户名明码
root@xjr-pc:/www/server# rabbitmqctl add_user root P@ssw0rd
# 检查用户列表
root@xjr-pc:/www/server# rabbitmqctl list_users
Listing users ...
user tags
guest [administrator]
rabbitmq_user []
# 为 root 用户增加 administrator 角色
root@xjr-pc:/www/server# rabbitmqctl set_user_tags root administrator
# 设置 root 用户权限,容许拜访 vhost 及 read/write
root@xjr-pc:/www/server# rabbitmqctl set_permissions -p / root
# 查看权限列表
root@xjr-pc:/www/server# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user configure write read
guest .* .* .*
root .* .* .*
# 启动音讯队列服务
rabbitmqctl start_app
# 验证 15672 端口存在示意音讯队列服务启动胜利
ss -tnlp | grep 15672
2.4. Rabbitmq 配置 systemctl 启动
1. 编辑 service 文件
vim /lib/systemd/system/rabbitmq.service
2. 编辑
#rabbitmq 启动脚本
[Unit]
Description=rabbitmq
After=syslog.target network.target
[Service]
#Type=forking
User=root
Group=root
WorkingDirectory=/www/server/rabbitMQ
ExecStart=/www/server/rabbitMQ/sbin/rabbitmq-server
ExecReload=/www/server/rabbitMQ/sbin/rabbitmq-server restart
ExecStop=/www/server/rabbitMQ/sbin/rabbitmq-server stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3. 解析
Description: 形容服务
After: 形容服务类别
[Service] 服务运行参数的设置
Type=forking 是后盾运行的模式
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为进行命令
PrivateTmp=True 示意给服务调配独立的长期空间
留神:[Service] 的启动、重启、进行命令全副要求应用绝对路径
[Install] 运行级别下服务装置的相干设置,可设置为多用户,即零碎运行级别为 3
4. 开机启动
systemctl enable rabbitmq.service
5. 谬误 :
运行 systemctl start rabbitmq 始终无奈启动,
提醒 ’/usr/local/software/rabbitmq/sbin/rabbitmq-server: line 73: exec: erl: not found’?
解决办法:
是因为环境变量不同,导致无奈找到相应命令,依照指引将 erlang 的 erl 软连贯到 /usr/bin 目录下,运行以下命令。
ln -s $ERLANG_HOME/bin/erl /usr/bin/erl
2.3. 装置 RabbitMQ 插件
1. rabbitmq_delayed_message_exchange
作用:向 RabbitMQ 增加提早音讯(或打算音讯)的插件。
github: https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
“
–1、wget 下载插件
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez
–2、拷贝到对应插件目录
cp rabbitmq_delayed_message_exchange-3.9.0.ez /www/server/rabbitMQ/plugins/
–3、开启插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
–4、重启 MQ 服务
systemctl restart rabbitmq-server
“