[linux]CentOS 7 下安装 RabbitMQ

简介

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

扫描二维码关注公众号,回复: 6487944 查看本文章

#追加环境变量到文件末尾

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,如下图所示。

9327700-bb45b93155e19c63.png

2、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

9327700-e963eb3bf8d01f56.png

3、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

9327700-690ee94da900f848.png

4、再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

9327700-ffefb3e4b6fd4982.png

5、如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

9327700-07a96ab32777a231.png

6、再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。

9327700-5013396cd5a18f79.png

[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,如下图所示。

9327700-bb45b93155e19c63.png

2、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

9327700-e963eb3bf8d01f56.png

3、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

9327700-690ee94da900f848.png

4、再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

9327700-ffefb3e4b6fd4982.png

5、如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

9327700-07a96ab32777a231.png

6、再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。

9327700-5013396cd5a18f79.png

[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 "/"

转载于:https://www.jianshu.com/p/8f8e5353cfe2

猜你喜欢

转载自blog.csdn.net/weixin_34320159/article/details/91158927
今日推荐