centos搭建rabbitmq集群

<code>本文由“开发者手册”原创,如需转载,拿走不谢!/<code>

前提概要

RabbitMQ是实现AMQP协议的开源消息中间件,能做到高并发量的情况下100%不丢失消息。对于中小型企业来说,RabbitMQ是一个不错的消息队列解决方案。

系统环境介绍

<code>centos7.5参数如下:

命令:uname -a
输出:Linux server160131 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

命令:rpm -q centos-release
输出:centos-release-7-5.1804.el7.centos.x86_64
需要centos7.5精简版安装包的同学可以评论或者私信我,私信关键字”centos“会自动回复您下载地址。/<code>

rabbitmq版本介绍

<code>rabbitmq版本为:rabbitmq-server-3.8.3

官方网站:http://www.rabbitmq.com
github地址:https://github.com/rabbitmq/rabbitmq-server

需要rabbitmq安装包的同学可以评论或者私信我,私信关键字”rabbitmq“会自动回复您下载地址。/<code>

erlang版本介绍

<code>erlang版本为:erlang-22.2.7-1

需要erlang安装包的同学可以评论或者私信我,私信关键字”erlang“会自动回复您下载地址。/<code>

集群节点介绍

<code>1、server160131(192.168.160.131)
2、server160132(192.168.160.132)
3、server160133(192.168.160.133)/<code>

搭建步骤

1、安装erlang(所有节点操作相同)

<code>命令:yum -y install erlang-22.2.7-1.el7.x86_64.rpm

输出:
Running transaction
正在安装 : erlang-22.2.7-1.el7.x86_64 1/1
验证中 : erlang-22.2.7-1.el7.x86_64 1/1
已安装:
erlang.x86_64 0:22.2.7-1.el7
完毕!/<code>

2、验证erlang是否安装成功(所有节点操作相同)

<code>命令:erl -version

输出:
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4/<code>

3、创建rabbitmq主目录(所有节点操作相同)

<code>命令:mkdir -p /opt/rabbitmq

说明:/opt/rabbitmq为rabbitmq安装包解压后主目录/<code>

4、解压缩安装包(所有节点操作相同)

<code>命令:tar -xvf rabbitmq-server-generic-unix-3.8.3.tar.xz -C /opt/rabbitmq/

说明:解压当前目录下的rabbitmq-server-generic-unix-3.8.3.tar.xz文件到/opt/rabbitmq目录。此时在/opt/rabbitmq目录下会生成一个rabbitmq_server-3.8.3的文件夹。/<code>

5、修改host(所有节点操作相同)

<code>命令:vim /etc/hosts

新增:
192.168.160.131 server160131
192.168.160.132 server160132
192.168.160.133 server160133

说明:需要配置所有节点的ip和主机名映射/<code>

6、修改配置文件

<code>## server160131节点操作如下:
# 修改rabbitmq-env文件:

命令:vim /opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-env

在开头处新增:
NODENAME=rabbit@server160131/<code>
<code>## server160132节点操作如下:
# 修改rabbitmq-env文件:

命令:vim /opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-env

在开头处新增:
NODENAME=rabbit@server160132/<code>
<code>## server160133节点操作如下:
# 修改rabbitmq-env文件:

命令:vim /opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-env

在开头处新增:
NODENAME=rabbit@server160133/<code>

7、启动rabbitmq(所有节点操作相同)

<code># 后台启动rabbitmq:

命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-server -detached

输出:
Warning: PID file not written; -detached was passed./<code>

8、安装rabbitmq_management管理插件(所有节点操作相同)

<code>查看插件列表(安装前):

命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-plugins list/<code>
centos搭建rabbitmq集群


<code># 安装rabbitmq_management插件:

命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-plugins enable rabbitmq_management

输出:
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins./<code>
<code>查看插件列表(安装后):

命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-plugins list/<code>
centos搭建rabbitmq集群


9、验证rabbitmq_management插件是否安装成功

<code># 登录rabbitmq控制台

分别在浏览器地址栏输入:
http://192.168.160.131:15672
http://192.168.160.132:15672
http://192.168.160.133:15672

出现如下页面表示成功。

说明:此时各节点还是处于单节点状态,并未组建集群。/<code>
centos搭建rabbitmq集群


10、集群组建说明(不用操作)

<code>由于Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群镜像。
Erlang的集群中各节点是由一个叫做magic cookie来实现的,这个cookie存放在:~/.erlang.cookie中。/<code>
<code># 查看各个节点的.erlang.cookie文件

# server160131节点
命令:cat ~/.erlang.cookie
输出:
SBUEANBEYTDUIXTFJMRV

# server160132节点
命令:cat ~/.erlang.cookie
输出:
JSWIRZHNCMRKXUCBKYIU

# server160133节点
命令:cat ~/.erlang.cookie
输出:
FGAHBAKHZWCEDBUOKGLN

总结:可以看出每个节点的.erlang.cookie的值都不一样,要组件集群,就要统一erlang.cookie的值。
方案是选定一个主节点,把主节点的.erlang.cookie值分发到其他节点,使集群内所有节点的erlang.cookie值一致。/<code>

11、主节点操作(在server160131操作)

<code># 我这边选定server160131作为主节点。/<code> 
<code># 账号创建和赋予权限

1)创建账号
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl add_user admin 123456
输出:
Adding user "admin" ...
说明:用户名为:admin,密码为:123456

2)赋权
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl set_user_tags admin administrator
输出:
Setting tags for user "admin" to [administrator] ...
说明:给admin用户赋予管理员权限./<code>
<code># 登录账号:
浏览器访问主节点地址:http://192.168.160.131:15672,使用admin/123456登录后出现如下页面,
可以看出此时只有一个server160131节点。/<code>
centos搭建rabbitmq集群


11、加入server160132节点到主节点

<code>1)在server160132上操作(停止当前节点)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl stop
输出:
Stopping and halting node rabbit@server160132 ...

2)在主节点server160131上操作(分发erlang.cookie文件到server160132节点)
命令:scp /root/.erlang.cookie [email protected]:/root/

3)在server160132上操作(启动当前节点)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-server -detached

4)在server160132上操作(停止应用)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl stop_app
输出:
Stopping rabbit application on node rabbit@server160132 ...

5)在server160132上操作(添加节点到集群)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl join_cluster rabbit@server160131
输出:
Clustering node rabbit@server160132 with rabbit@server160131

6)在server160132上操作(启动应用)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl start_app
输出:
Starting node rabbit@server160132 ...
completed with 3 plugins.

7)验证是否成功
浏览器访问主节点地址:http://192.168.160.131:15672,登录后出现如下页面,可以发现已经有2个节点了/<code>
centos搭建rabbitmq集群


12、加入server160133节点到主节点

<code>1)在server160133上操作(停止当前节点)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl stop
输出:
Stopping and halting node rabbit@server160133 ...

2)在主节点server160131上操作(分发erlang.cookie文件到server160133节点)
命令:scp /root/.erlang.cookie [email protected]:/root/

3)在server160133上操作(启动当前节点)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmq-server -detached

4)在server160133上操作(停止应用)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl stop_app
输出:
Stopping rabbit application on node rabbit@server160133 ...

5)在server160133上操作(添加节点到集群)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl join_cluster rabbit@server160131
输出:
Clustering node rabbit@server160133 with rabbit@server160131

6)在server160133上操作(启动应用)
命令:/opt/rabbitmq/rabbitmq_server-3.8.3/sbin/rabbitmqctl start_app
输出:
Starting node rabbit@server160133 ...
completed with 3 plugins.

7)验证是否成功
浏览器访问主节点地址:http://192.168.160.131:15672,登录后出现如下页面,可以发现已经有3个节点了/<code>
centos搭建rabbitmq集群


结束语

希望我的文章能给您带来帮助,如果您有什么疑问,可以给我留言,我会在第一时间给你提供解答。如果您有好的建议或想法,也欢迎给我留言。

centos搭建rabbitmq集群


分享到:


相關文章: