RabbitMQ官网:https://www.rabbitmq.com/

1.环境阐明

root@xjr-pc:/etc/init.d# lsb_release -aNo LSB modules are available.Distributor ID:    UbuntuDescription:    Ubuntu 18.04.1 LTSRelease:    18.04Codename:    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

  1. 上传并解压 Erlang 安装包
root@xjr-pc:/www/server/src# pwd/www/server/srcroot@xjr-pc:/www/server/src# tar -zxvf otp_src_24.0.tar.gzroot@xjr-pc:/www/server/src# lltotal 102300drwxr-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
  1. 编译装置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.0root@xjr-pc:/www/server/src/otp_src_24.0# ./configure prefix=/www/server/erlangroot@xjr-pc:/www/server/src/otp_src_24.0# make && make install#装置实现后进入装置门路目录root@xjr-pc:/www/server/erlang# pwd/www/server/erlangroot@xjr-pc:/www/server/erlang# lltotal 16drwxr-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/
  1. 配置环境变量 和 查看 Erlang 是否装置胜利
#将Erlang装置门路/bin 增加到环境变量root@xjr-pc:/etc/profile.d# pwd/etc/profile.droot@xjr-pc:/etc/profile.d# cat erlang.shERLANG_HOME=/www/server/erlangPATH=$PATH:$ERLANG_HOME/binexport PATHroot@xjr-pc:/etc/profile.d# source /etc/profile# 运行erl root@xjr-pc:/etc/profile.d# erlErlang/OTP 24 [erts-12.0] [source] [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.xzroot@xjr-pc:/www/server/src# xz -d rabbitmq-server-generic-unix-3.9.19.tar.xzroot@xjr-pc:/www/server/src# tar -xvf rabbitmq-server-generic-unix-3.9.19.tarroot@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.droot@xjr-pc:/etc/profile.d# cat rabbitmq.shRABBITMQ_HOME=/www/server/rabbitMQPATH=$PATH:$RABBITMQ_HOME/sbinexport PATHroot@xjr-pc:/etc/profile.d# source /etc/profile# 后盾启动RabbitMQroot@xjr-pc:/www/server# rabbitmq-server -detached# 查看端口 5672 存在示意启动胜利root@xjr-pc:/www/server# ss -tnlp|grep 5672LISTEN   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_usersListing users ...user    tagsguest   [administrator]rabbitmq_user   []# 为 root 用户增加administrator角色root@xjr-pc:/www/server# rabbitmqctl set_user_tags root administrator# 设置 root 用户权限,容许拜访vhost及read/writeroot@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    readguest    .*    .*    .*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=rabbitmqAfter=syslog.target network.target[Service]#Type=forkingUser=rootGroup=rootWorkingDirectory=/www/server/rabbitMQExecStart=/www/server/rabbitMQ/sbin/rabbitmq-serverExecReload=/www/server/rabbitMQ/sbin/rabbitmq-server restartExecStop=/www/server/rabbitMQ/sbin/rabbitmq-server stopPrivateTmp=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

``