Centos7 离线安装RabbitMQ,并配置集群

1、rpm安装

1.1 安装包下载

将下载到的rpm文件copy入centos7,放置到自定义文件夹中。

1.2 执行安装命令

使用rpm命令安装,也可以使用yum install *.rpm安装。

sudo rpm -ivh erlang-19.3.6.11-2.el6.x86_64.rpm

sudo rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

sudo rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm

2、启动rabbitmq

2.1执行sudo service rabbitmq-server start

2.2 配置rabbitmq管理账户。

执行命令 rabbitmqctl add_user admin admin,设置账户密码为admin admin

2.3 执行命令 rabbitmqctl set_user_tags admin administrator,设置admin为管理员权限

2.4 执行命令 rabbitmq-plugins enable rabbitmq_management,打开rabbitmq web管理。

2.5 防火墙打开5672/15672端口

firewall-cmd --zone=public --add-port=5672/tcp --permanent

firewall-cmd --zone=public --add-port=15672/tcp --permanent

2.6 管理链接为:http://localhost:15672,登陆账户密码为设置的admin admin

2.7 登陆管理端,并打开访问权限。

2.7.1 登陆后台

2.7.2、查看用户权限,默认状态下权限是不允许访问(此时程序访问5672端口是连接被拒绝)。

2.7.3 点击用户名,进入用户页面,直接点击设置权限。此时刷新页面回到Users页面,权限变成可访问

 

 

  1. RabbitMQ集群部署

3.1 按照前面的方式在想要集群的多台主机上安装好RabbitMQ实例

3.2 集群配置

3.2.1 更改主机/etc/hosts

vim /etc/hosts加入主机节点。 如下所示二台主机均在/etc/hosts中添加,然后二台主机相互之间可以ping通rabbit-node

添加内容:

192.168.1.5 rabbit-node1

192.168.1.10 rabbit-node2

3.2.2 多台主机的erlang.cookie设置为同一个

使用rpm包安装的rabbitmq, erlang.cookie的位置在/var/lib/rabbitmq/.erlang.cookie。具体操作流程如下:如果以rabbit-node1的erlang.cookie作为集群的erlang.cookie.

  1. 在node1的主机上 chmod 777 /var/lib/rabbitmq/.erlang.cookie(改变只读权限,让node2)
  2. 在node2主机上执行:

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

scp -r rabbit-node1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie

  1. 查看erlang.cookie是否统一,如果已统一,再分别执行如下命令,恢复原本权限

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

3.2.3 配置集群

3.2.3.1 在2台主机上停止当前Rabbitmq-server, 分别执行service rabbitmq-server stop,如有问题,可以使用ps查看rabbitmq进程号,在kill -9 杀掉。

3.2.3.2 然后执行service rabbitmq-server start 开启服务.

分别在三台主机上执行rabbitmqctl cluster_status查看集群状况,此时只有本机的记录。打印输出如下:

Cluster status of node rabbit@localhost ...

[{nodes,[{disc,[rabbit@localhost]}]},

 {running_nodes,[rabbit@localhost]},

 {cluster_name,<<"rabbit@localhost">>},

 {partitions,[]},

 {alarms,[{rabbit@localhost,[]}]}]

3.2.3.3 将rabbit-node1,rabbit-node2组成集群。

3.2.3.3.1 两台服务器均修改hostname与/etc/hosts中配置的一样,不然加入到集群会有问题,参见3.2.1配置

[root@localhost ~]# vi /etc/hostname

rabbit-node1

3.2.3.3.2 修改网络配置/etc/sysconfig/network,如下:

[root@rabbit-node1 ~]# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=rabbit-node2

[root@rabbit-node1 ~]# service network restart

3.2.3.3.3 重启服务器使host修改生效,查询hostname是否已修改

[root@rabbit-node1 ~]# hostname

rabbit-node1

3.2.3.3.4 启动rabbitmq服务

sudo service rabbitmq-server start后,在 rabbit-node2上执行:

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@rabbit-node1

rabbitmqctl start_app

3.2.3.3.5在二台主机上分别执行rabbitmqctl cluster_status查看集群状态,结果如下:

[root@rabbit-node1 ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@rabbit-node1 ...

[{nodes,[{disc,['rabbit@rabbit-node1','rabbit@rabbit-node2']}]},

 {running_nodes,['rabbit@rabbit-node2','rabbit@rabbit-node1']},

 {cluster_name,<<"rabbit@rabbit-node1">>},

 {partitions,[]},

 {alarms,[{'rabbit@rabbit-node2',[]},{'rabbit@rabbit-node1',[]}]}]

表示集群创建成功,从任意一个节点的rabbitmq web管理端也可以看到各个节点状态。

3.2.4 搭建rabbitmq的镜像高可用模式集群

在任意一个节点上执行如下命令:

[root@rabbit-node1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

参数意思为:

ha-all:为策略名称。

^:为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。

ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。)。

查看策略:rabbitmqctl list_policies -p /

至此rabbitmq的镜像高可用模式集群搭建完成!!!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值