linux环境rabbitMQ集群搭建

 

一、资料准备:
1、erlang安装包

erlang-18.1-1.el7.centos.x86_64.rpm
2、rabbitmq安装包

rabbitmq-server-3.5.6-1.noarch.rpm
3、两台Linux服务器(本篇文章用的CentOS7)

二、安装erlang和rabbitmq

先在其中一台上面按照如下步骤操作:

1、安装运行环境

RabbitMQ使用erlang语言开发,我们首先要安装erlang.

上传安装包erlang-18.1-1.el7.centos.x86_64.rpm

执行安装:

rpm -uvh erlang-18.1-1.el7.centos.x86_64.rpm

 

2、安装RabbitMQ-Server

上传安装包rabbitmq-server-3.5.6-1.noarch.rpm

执行安装:

rpm -uvh rabbitmq-server-3.5.6-1.noarch.rpm

安装好了之后,使用 rpm -qa|grep rabbitmq 命令查看是否已经安装成功

 

3、启停命令

service rabbitmq-server start

service rabbitmq-server restart

service rabbitmq-server stop

rabbitmqctl status  # 查看状态

 

4、安装命令维护插件

rabbitmq-plugins enable rabbitmq_management

这个命令的作用是安装RabbitMq的一个管理插件,这样,我们就可以通过在浏览器访问 http://ip:15672 时,进入一个管理界面。

 

不过,现在还是不能访问页面,继续进行如下操作

 

5、开启远程访问

接下来我们就来开启远程访问:

#cd /etc/rabbitmq  

#cp /usr/share/doc/rabbitmq-server-3.5.6/rabbitmq.config.example /etc/rabbitmq/   

#mv rabbitmq.config.example rabbitmq.config

#vim /etc/rabbitmq/rabbitmq.config

 

在rabbitmq.config中添加   {loopback_users, []}

或者将  %% {loopback_users, []}, 修改为 {loopback_users, []}   (修改时注意后面有个逗号要删掉)

如果第五步执行失败可省略

6、关闭防火墙(如果已经关闭,此步骤可以省略)

systemctl stop firewalld

systemctl status firewalld

 

7、增加用户

rabbitmqctl add_user admin admin   //创建用户admin 密码admin

rabbitmqctl set_user_tags admin administrator //设施用户角色

rabbitmqctl list_users //查看用户列表

rabbitmqctl  set_permissions –p / admin  “.*”   “.*”   “.*”  //设置用户权限

 

8、使用新建用户登录管理 页面

 

接下来在第二台机器上重复上面8个步骤

三、搭建rabbitMQ集群

保证两台服务器安装rabbitmq成功,并且能够成功访问到管理台界面。
在两台Linux系统中修改hostname,分别为A和B,作为集群注册的主机名。
执行语句:

vi /etc/hosts

修改的文件内容如下:
A主机的主机名设置
在这里插入图片描述
B主机的主机名设置
在这里插入图片描述
设置成功后保存退出,重启服务器:

<span style="color:#000000"><code class="language-powershell">reboot
</code></span>
  • 1

注意:2台Linux服务器需要完成同样的操作。关闭防火墙确保2台机器相互ping 同可以执行ping A 和ping B命令进行测试。
重启后执行ping命令,保证两台机器能够相互访问:
在这里插入图片描述
在这里插入图片描述

配置Cookie文件
Erlang Cookie是保证不同节点可以互相通信的秘钥,要保证集群中的不同节点互相通信必须共享相同的Erlang Cookie。

由于我安装rabbitmq是通过rpm进行安装的,所以默认的Erlang Cookie文件路径是:
/var/lib/rabbitmq/.erlang.cookie

cat /var/lib/rabbitmq/.erlang.cookie

要保证A服务器和B服务器的cookie文件值一致,有两种解决方式,可以选择使用vim进行编辑,也可以使用scp命令完成文件跨机器拷贝例如:

scp /var/lib/rabbitmq/.erlang.cookie 192.168.237.138:/var/lib/rabbitmq

由于这个文件的权限是只读因此无论是使用vim还是scp来实现Cookie文件的同步都会失败,因此必须要修改这个文件的权限:

 chmod 777 /var/lib/rabbitmq/.erlang.cookie

当Cookie文件同步完成以后再修改权限回只读:

chmod 400 /var/lib/rabbitmq/.erlang.cookie

此处有坑:改完cookie之后一定要将rabbitmq的所有进程先杀掉,然后在重启rabbitmq,否则启动会报错

ps -ef|grep rabbitmq

kill -9 进程号

组建集群

1、启动两个服务器的rabbitmq:

service rabbitmq-server start
  •  

访问浏览器,保证都能够出现rabbitmq界面:

2、查看集群状态确认节点

[root@B ~]# rabbitmqctl cluster_status
此时还没有进行其他服务器节点的加入,所以目前显示的节点只有本服务器本身。

3、将某个RabbitMQ加入到某个服务器节点


rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@A
rabbitmqctl start_app
  • 注意:
    rabbitmqctl join_cluster rabbit@A 命令中的A为某个机器的hostname,在hostname为B的机器中执行这个命令。

    4、再次查看集群状态确认节点

  • [root@B ~]# rabbitmqctl cluster_status
    Cluster status of node rabbit@B ...
    [{nodes,[{disc,[rabbit@A,rabbit@B]}]},
     {running_nodes,[rabbit@A,rabbit@B]},
     {cluster_name,<<"rabbit@A">>},
     {partitions,[]},
     {alarms,[{rabbit@A,[]},{rabbit@B,[]}]}]

    注意
    当查看节点状态时发现2台机器的节点同时显示机表示集群搭建完成。

    刷新页面:

至此集群搭建成功。

其他命令:
如果要将某个节点从集群中移除,使其变回独立节点,可以使用以下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

部分内容有借鉴

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值