ubuntu 14.04 rabbitmq集群部署

1.准备机器,我这边准备的是三台ubuntu14.04

   机器主机名不能相同,不然节点冲突

2.安装rabbitmq 

3.修改hosts文件  

root@abc-web-04:~# vim /etc/hosts

  192.168.1.100 abc-web-04

  192.168.1.101 abc-web-05

  192.168.1.102 abc-web-06

4.安装 erlang

sudo apt-get install erlang

5.修改 .erlang.cookie 文件 ,确保每一台机器的.erlang.cookie 内容(一个字符串)一样 ;如果是通过源安装RabbitMQ的话,Erlang Cookie 文件在/var/lib/rabbitmq/.erlang.cookie。如果是通过源码安装的RabbitMQ,Erlang Cookie文件$HOME/.erlang.cookie,我是通过源安装的所以直接修改 /var/lib/rabbitmq/.erlang.cookie,

 由于未知各个机器的root账户密码,复制文件无法实现,因此记录第一台机器的.erlang.cookie内容,再每一台机器上修改 /var/lib/rabbitmq/.erlang.cookie文件把值设置为同一个字符串

vim  /var/lib/rabbitmq/.erlang.cookie

6.使用detached参数,在后台启动rabbit node,要先停止现有的Rabbitmq-server,再重新在后台支行, 遇到关闭错误请确认.erlang.cookie的权限,或用命令 ps aux|grep epmd 和  ps aux|grep erl 找出相关进程   kill 掉他们,启动成功后通过命令 rabbitmqctl cluster_status查看各个节点的状态

root@abc-web-04:~# rabbitmqctl stop
Stopping and halting node 'rabbit@abc-web-04' ...
...done.
root@abc-web-04:~# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
root@abc-web-04:~# rabbitmqctl cluster_status
Cluster status of node 'rabbit@abc-web-04' ...
[{nodes,[{disc,['rabbit@abc-web-04']}]},
 {running_nodes,['rabbit@abc-web-04']},
 {partitions,[]}]
...done.

7. 将各个机器节点 组成集群,其他机器只要和其中一台机器组成集群,那么其他机器之间也间接组成了集群连接

        经测试,磁盘节点达到3台时就不能继续添加节点了,会分成两个2*2的集群, 需要把磁盘节点变成内存节点后可以继续添加

root@abc-web-05:~# rabbitmqctl stop_app
Stopping node 'rabbit@abc-web-05' ...
...done.
root@abc-web-05:~# rabbitmqctl join_cluster rabbit@abc-web-04
Clustering node 'rabbit@abc-web-05' with 'rabbit@abc-web-04' ...
...done.

8.查看各个节点集群状态

root@abc-web-05:~#  rabbitmqctl cluster_status
Cluster status of node 'rabbit@abc-web-05' ...
[{nodes,[{disc,['rabbit@abc-web-04','rabbit@abc-web-05',
'rabbit@abc-web-06']}]},
{running_nodes,['rabbit@abc-web-04','rabbit@abc-web-06','rabbit@abc-web-05']},
{partitions,[]}] ...done.

集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl cluster_status 来查看是否集群配置成功。

9.变更节点类型   disc / ram  这里设置的是两台ram  一台disc 

rabbitmqctl change_cluster_node_type disc

10.添加虚拟主机 vhost

rabbitmqctl add_vhost hrsystem

11.为虚拟主机设置策略

rabbitmqctl set_policy -p hrsystem ha-allqueue "^" '{"ha-mode":"all"}'
rabbitmqctl set_policy -p / ha-allqueue "^" '{"ha-mode":"all"}'       //默认配置    

这行命令在vhost名称为hrsystem创建了一个策略,策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称

12.设置集群名称 (经测试,set_cluster_name  命令不存在 原因未知 )

rabbitmqctl set_cluster_name abccluster

13. 安装 haproxy

sudo apt-cache showpkg haproxy

14.配置  https://www.cnblogs.com/lion.net/p/5725474.html

 

资料源自网络  

posted @ 2018-08-11 19:23  虫二王子  阅读(218)  评论(0编辑  收藏  举报