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. 如何识别Studio 5000程序开发版本号

    前言:中.大型AB PLC的编程软件从以前的RSLogix 5000到目前的Studio 5000,都是有版本号的,如RSLogix 5000 V19.0.Studio 5000 V32.高版本的软件 ...

  2. Windows10配置JDK环境变量

    一. 系统和JDK版本 系统:Windows10 JDK版本:1.8 二. 配置步骤 1. 右键单击“我的电脑” >> 属性 >> 高级系统设置 2. 环境变量 3. 系统变量 ...

  3. Webpack友好的错误提示插件friendly-errors-webpack-plugin

    Friendly-errors-webpack-plugin 介绍 Friendly-errors-webpack-plugin识别某些类别的webpack错误,并清理,聚合和优先级,以提供更好的开发 ...

  4. Python:正则表达式(二):如何使用re.search()返回的匹配对象中的具体内容呢??

    在上一篇中讲述了re.seach()会返回一个对象格式的数据,如下:<_sre.SRE_Match object; span=(16, 24), match='${phone}'> 那么问 ...

  5. js一些格式化

    /* 格式化金额 */function formatAmount(s, n) {      n = n > 0 && n <= 20 ? n : 2;      s = p ...

  6. axios formData提交数据 && axios设置charset无效???

    但是这样会出现一个问题,什么问题呢? 我设置了请求头编码utf-8,但是没生效 content-type里面没有出现utf-8???????查了很多资料,说这是axios固有的bug,我....... ...

  7. 阿里云服务器ftp连接后21端口无法使用的问题

    今天在阿里云Centos上搭了一个ftp 服务,开启了20和21端口的权限.但是用工具和ftp命令登录,均超时. ftp命令登录成功后不能使用ls 命令,直接超时. 工具登录成功后 获取根目录失败,也 ...

  8. 在vscode中使用eslint+prettier格式化vue项目代码 (转载)

    ESlint:javascript代码检测工具,可以配置每次保存时格式化js,但每次保存只格式化一点点,你得连续按住Ctrl+S好几次,才格式化好,自行体会~~ vetur:可以格式化html.标准c ...

  9. java学习笔记04-基本数据类型

    编写一款可用的软件,离不开对数据的操作(经常有人说:程序=数据+算法).数据可能有很多类型,比如对于年龄来说,数据就是整数. 对于金额来,数据是带小数的.在java中,可以分为内置数据类型和引用数据类 ...

  10. 龙芯yl8089无声音的解决方案

    网上搜索到的解决方法都是卸载pulseaudio,但这种方法比较暴力不能从根本上解决问题. 经过一段时间的排查,我发现最终问题出现在resample-method上. 由于内核内CS5536 AC97 ...