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页面,权限变成可访问
- 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.
- 在node1的主机上 chmod 777 /var/lib/rabbitmq/.erlang.cookie(改变只读权限,让node2)
- 在node2主机上执行:
chmod 777 /var/lib/rabbitmq/.erlang.cookie
scp -r rabbit-node1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
- 查看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的镜像高可用模式集群搭建完成!!!