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

资料源自网络

ubuntu 14.04 rabbitmq集群部署的更多相关文章

  1. Ubuntu 14.04 上使用 Nginx 部署 Laravel

    本教程将会涉及以下工具: Ubuntu 14.04 LTS PHP 5.5 MySQL Laravel 5.0 Nginx 参考文章:Ubuntu 14.04 上使用 Nginx 部署 Laravel ...

  2. Centos6.9下RabbitMQ集群部署记录

    之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...

  3. openstack(2) -------RabbitMQ集群部署

    一.RabbitMQ简介 RabbitMQ属于一个流行的开源消息队列系统.属于AMQP( 高级消息队列协议 ) 标准的一个 实现.是应用层协议的一个开放标准,为面向消息的中间件设计.用于在分布式系统中 ...

  4. rabbitMQ集群部署以及集群之间同步

    MQ集群部署 期待的部署架构 其中,一个机房有两台机器部署MQ,并组成集群,有一个机房的MQ集群作为中心集群,其他机房的MQ集群将消息同步到中心MQ集群中. 安装erlang,略.. 安装rabbit ...

  5. rabbitmq集群部署及配置

    消息中间件rabbitmq,一般以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息异步.本篇将以rabbitmq+HA方式进行部署. 一.原理介绍 rabbitmq是依据erlang的分 ...

  6. 160328、rabbitMQ集群部署示例

    环境:Centos 6.5 x86_64MQ网址:http://www.rabbitmq.com/SERVER101\SERVER102 SERVER103 一.单节点安装 #yum install ...

  7. RabbitMQ集群部署、高可用和持久化

    RabbitMQ 安装和使用 1.安装依赖环境 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本 在 ...

  8. 私有云Rabbitmq 集群部署

    默认openstack使用rabbitmq做信息队列,如果想要是云高可用,那么需要对每个涉及的组件都进行高可用配置,本文介绍如何使用rabbitmq 做高可用 高可用方法 通过 Erlang 的分布式 ...

  9. openstack——Rabbitmq集群部署

    一.前期准备 1.条件:准备3台Linux系统虚拟机,保持系统版本一致,确保配置好yum源,及网络源     2.3台虚拟机做静态解析 [root@yun1 ~]# cat /etc/hosts 12 ...

随机推荐

  1. list不是模板

    vector和list在命名空间std里,还需要添加声明 using namespace std;

  2. 开启IIS的WebGarden、WebFarm和StateServer之旅

    前言 公司系统虽然配置有1台NLB后拖4台App Server最后搭一台强劲无比的DB Server,但每天下午4点左右总被投诉系统慢,报表下载不了等问题.究其原因,原来NLB采用锁定sessionI ...

  3. java中import详解

    前言 import与package机制相关,这里先从package入手,再讲述import以及static import的作用. package package名称就像是我们的姓,而class名称就像 ...

  4. word20170106在机场 At the airport有用的词和句子

    有用的词: airport terminal: 航站楼 domestic flight: 国内航班 international flight: 国际航班 checked luggage: 托运行李 c ...

  5. ICMP shell

    场景 反向shell的场景下使用 原理 ICMP作为获取反向shell的通道 实践 运行 run.sh报错,可能是因为用的Parrot.改一下就可以了 ifconfig | grep 'inet '| ...

  6. Apollo与ROS

    Apollo项目基于ROS,但是对其进行了改造,主要包括下面三个方面: 通信性能优化 去中心化网络拓扑 数据兼容性扩展 通信性能优化 自动驾驶车辆中包含了大量的传感器,这些传感器可能以非常高频的速度产 ...

  7. 课堂小练习 设计、定义并实现Complex类

    定义一个负数类Complex使得下面的代码能够工作.(课本P145) #include<iostream> #include<cmath> using namespace st ...

  8. 洛谷P4770 [NOI2018]你的名字 [后缀自动机,线段树合并]

    传送门 思路 按照套路,直接上后缀自动机. 部分分:\(l=1,r=|S|\) 首先把\(S\)和\(T\)的后缀自动机都建出来. 考虑枚举\(T\)中的右端点\(r\),查询以\(r\)结尾的串最长 ...

  9. VMware虚拟机安装WIN7

    VMware在IT工作人员的学习之中,使用的较多,故聊一聊VMware中WIN7的安装: 第一步:安装VMware,这个软件百度就可以下载,但是是收费软件,注册码可以百度到. 第二步:VMware安装 ...

  10. C# 模拟键盘操作SendKey(),SendKeys()

    模拟键盘输入就是使用以下2个语法实现的. SendKeys.Send(string keys);  //模拟汉字(文本)输入SendKeys.SendWait(string keys); //模拟按键 ...