简介
RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件。RabbitMQ 服务器是用 Erlang 语言编写的,所以下面要安装 RabbitMQ 需要安装 Erlang。
一、安装 Erlang、Elixir
1.1 准备
1、yum update
2、yum install epel-release
3、yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64
1.2 安装 Erlang
1、wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
2、rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
3、yum update
4、yum install erlang
5、验证是否安装成功,输入命令:erl
1)编译&安装完成以后配置Erlang环境变量:
[root@MiWiFi-R3-srv otp_src_19.3]# vim /etc/profile
#追加环境变量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
[root@MiWiFi-R3-srv otp_src_19.3]# source /etc/profile
2)运行RabbitMQ需要首先开放15672和5672端口:
1、执行firewall-cmd --permanent --zone=public --add-port=156/tcp,提示FirewallD is not running,如下图所示。
2、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
3、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
4、再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
5、如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
6、再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --reload
1.3 安装 Elixir
因为 EPEL 中的 Elixir 版本太老,所以下面是通过源码编译安装的过程:
1、通过 git 下载 Elixir 源码:git clone https://github.com/elixir-lang/elixir.git
2、进到该目录:cd elixir/
3、编译:make clean test,编译完成会看到:Finished in 5.7 seconds (3.3s on load, 2.3s on tests)
4、配置 Path:export PATH="$PATH:/path/elixir/bin"
5、验证是否安装成功,输入命令:iex
二、安装 RabbitMQ
1、wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm
2、rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
3、yum install rabbitmq-server-3.6.1-1.noarch.rpm
正常情况下RabbitMQ已经安装完成,最后测试一下:
[root@MiWiFi-R3-srv ~]# rabbitmq-plugins enable rabbitmq_management
[root@MiWiFi-R3-srv ~]# rabbitmq-server
至此已经安装完成,下面介绍启动和自动开机启动命令和配置
1、启动:systemctl start rabbitmq-server 或 service rabbitmq-server start
2、开机自动启动:systemctl enable rabbitmq-server
3、查看 rabbitmq-server 状态:rabbitmqctl status
4、停止:service rabbitmq-server stop
或
1、# /sbin/service rabbitmq-server stop
2、# /sbin/service rabbitmq-server start
3、# rabbitmqctl status
参考
Install RabbitMQ server in CentOS 7
http://www.aspyc.com/archives/466.html
https://www.linuxidc.com/Linux/2018-01/150600.htm
方案二:
CENTOS 7安装配置RABBITMQ
一. 安装erlang
1)下载erlang
[root@localhost src]# wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
2)安装erlang
[root@localhost src]# rpm -ihv erlang-19.0.4-1.el7.centos.x86_64.rpm
二.安装RabbitMQ
1)下载rabbitmq
[root@localhost src]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
2)导入key文件
[root@localhost src]# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
3)编译&安装完成以后配置Erlang环境变量:
[root@MiWiFi-R3-srv otp_src_19.3]# vim /etc/profile
#追加环境变量到文件末尾
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
[root@MiWiFi-R3-srv otp_src_19.3]# source /etc/profile
4)运行RabbitMQ需要首先开放15672和5672端口:
1、执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示FirewallD is not running,如下图所示。
2、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
3、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
4、再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
5、如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
6、再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
[root@MiWiFi-R3-srv ~]# firewall-cmd --reload
正常情况下RabbitMQ已经安装完成,最后测试一下:
[root@MiWiFi-R3-srv ~]# rabbitmq-plugins enable rabbitmq_management
[root@MiWiFi-R3-srv ~]# rabbitmq-server
5 )安装rabbitmq
[root@localhost src]# yum install -y rabbitmq-server-3.6.6-1.el7.noarch.rpm
三.开启可视化插件
[root@localhost src]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@localhost... failed.
* Could not contact node rabbit@localhost.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker.
(注意:上面出现报错信息 Applying plugin configuration to rabbit@localhost… failed.
是因为没有启动rabbit服务也就是需要先开启服务:service rabbitmq-server start)
四.添加远程访问用户,并分配权限
[root@localhost src]# rabbitmqctl add_user yangcheng 123456
Error: unable to connect to node rabbit@localhost: nodedown
DIAGNOSTICS
===========
attempted to contact: [rabbit@localhost]
rabbit@localhost:
* connected to epmd (port 4369) on localhost
* epmd reports: node 'rabbit' not running at all
no other nodes on localhost
* suggestion: start the node
current node details:
- node name: 'rabbitmq-cli-16@localhost'
- home dir: /var/lib/rabbitmq
- cookie hash: JchyWsght/ggnwo3tgnb5Q==
对于上述问题,官网有提到cookie不一致之类的问题,重启服务即可解决。
[root@localhost src]# service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl):[ OK]
# 添加用户
[root@localhost src]# rabbitmqctl add_user yangcheng 123456
Creating user "yangcheng"
# 配置用户组
[root@localhost src]# rabbitmqctl set_user_tags yangcheng administrator
Setting tags for user "yangcheng" to [administrator]
# 分配权限
[root@localhost src]# rabbitmqctl set_permissions -p / yangcheng '.*' '.*' '.*'
Setting permissions for user "yangcheng" in vhost "/"