Linux下面安装RabbitMQ Cluster
安装rabbitmq cluster:
设置 Erlang Cookie
安装完RabbitMQ之后,在第一台机器上面启动RabbitMQ,然后在停止.复制node1上的/var/lib/rabbitmq/.erlang.cookie文件到node2, node3.
这里将 node1 的该文件复制到 node2、node3,由于这个文件权限是 400,所以需要先修改 node2、node3 中的该文件权限为 777,否则不能复制:
cat /var/lib/rabbitmq/.erlang.cookie
chmod /var/lib/rabbitmq/.erlang.cookie
ll /var/lib/rabbitmq/.erlang.cookie
然后将 node1 中的该文件拷贝到 node2、node3,最后将权限和所属用户/组修改回来:
chmod /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
设置 Erlang Cookie
如果启动,需要停止:
rabbitmqctl stop或service rabbitmq-server stop
使用 -detached 参数运行各节点
node1$ rabbitmq-server -detached
node2$ rabbitmq-server -detached
node3$ rabbitmq-server -detached



这样就创建了 3 个独立的 RabbitMQ broker ,每一个 node 上一个,可以通过 cluster_status 命令来确认:
node1$ rabbitmqctl cluster_status
node2$ rabbitmqctl cluster_status
node3$ rabbitmqctl cluster_status



组成集群将 node2、node3 与 node1 组成集群:
node1/2/3:
--node1,node2,node3
node1/2/3$ iptables -I INPUT -p tcp --dport -j ACCEPT
node1/2/3$ iptables -I INPUT -p tcp --dport -j ACCEPT
node1/2/3$ service iptables save
node1/2/3$ service iptables restart
node2/3:
--node2
node2$ rabbitmqctl stop_app
node2$ rabbitmqctl join_cluster --ram rabbit@node1
node2$ rabbitmqctl start_app --node3
node2$ rabbitmqctl stop_app
node2$ rabbitmqctl join_cluster --ram rabbit@node1
node2$ rabbitmqctl start_app




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


改变 node 的类型
我们可以改变 node 的类型,如磁盘 node 到内存 node ,或者相反。比如将 rabbit@rabbit2 和 rabbit@rabbit3 的 node 类型都变成和之前不同的种类。我们可以使用命令 change_cluster_node_type 来进行转换,但是首先需要将 node 停止。
node2$ rabbitmqctl stop_app
Stopping node rabbit@node2 ...done.
node2$ rabbitmqctl change_cluster_node_type disc
Turning rabbit@node2 into a disc node ...
...done.
node2$ rabbitmqctl start_app
Starting node rabbit@node2 ...done. node3$ rabbitmqctl stop_app
Stopping node rabbit@node3 ...done.
node3$ rabbitmqctl change_cluster_node_type ram
Turning rabbit@node3 into a ram node ...
node3$ rabbitmqctl start_app
Starting node rabbit@node3 ...done.
设置镜像队列策略在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

重新启动 cluster node
cluster 中的 node 在任何时候都可以被停止。 同样地如果他们崩溃了也是没有任何问题的。在上述两种情况中,cluster 中的其他 node 都可以不受任何影响的继续运行,这些“非正常” node 重新启动后会自动地与 cluster 中的其他 node 取得联系。
rabbit1$ rabbitmqctl stop
Stopping and halting node rabbit@rabbit1 ...done. rabbit2$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit2 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit3,rabbit@rabbit2]}]
...done. rabbit3$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit3 ...
[{nodes,[{disc,[rabbit@rabbit2,rabbit@rabbit1]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit2,rabbit@rabbit3]}]
...done. rabbit3$ rabbitmqctl stop
Stopping and halting node rabbit@rabbit3 ...done. rabbit2$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit2 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit2]}]
...done.
现在我们重新启动 node ,并查看 cluster 的状态:
rabbit1$ rabbitmq-server -detached rabbit1$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit1 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit2,rabbit@rabbit1]}]
...done. rabbit2$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit2 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit1,rabbit@rabbit2]}]
...done. rabbit3$ rabbitmq-server -detached rabbit1$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit1 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit2,rabbit@rabbit1,rabbit@rabbit3]}]
...done. rabbit2$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit2 ...
[{nodes,[{disc,[rabbit@rabbit1,rabbit@rabbit2]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit1,rabbit@rabbit2,rabbit@rabbit3]}]
...done. rabbit3$ rabbitmqctl cluster_status
Cluster status of node rabbit@rabbit3 ...
[{nodes,[{disc,[rabbit@rabbit2,rabbit@rabbit1]},{ram,[rabbit@rabbit3]}]},
{running_nodes,[rabbit@rabbit2,rabbit@rabbit1,rabbit@rabbit3]}]
...done.
listen rabbitmq_cluster 0.0.0.0: mode tcp
balance roundrobin server node1 192.168.1.1: check inter rise fall
server node2 192.168.1.2: check inter rise fall
server node2 192.168.1.3: check inter rise fall
转:http://88250.b3log.org/rabbitmq-clustering-ha(参考)
http://my.oschina.net/moooofly/blog/93548(翻译)
http://www.rabbitmq.com/clustering.html(官网)
http://yupengyan.com/quick-installation-of-haproxy-on-centos6-2.html(Happroxy)
Linux下面安装RabbitMQ Cluster的更多相关文章
- RabbitMQ教程(二) ——linux下安装rabbitmq
安装过程参考官网: Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE) 首先需要安装erlang,参考:http://fedo ...
- linux上安装rabbitMQ
本次环境搭建centos7及Erlang环境otp_src_19.3.tar.gz 和rabbitmq-server-generic-unix-3.6.14.tar.zx RabbitMQ是流行的开源 ...
- 在Linux下安装RabbitMQ
Installing on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat) 安装新版本的RabbitMQ出错: centos端口转发神器:soca ...
- linux下安装rabbitmq的rpm包问题记录
安装rabbitmq的文章和帖子多如牛毛,不管是官网还是各个博客,这里附个Rabbitmq官网安装Rpm包的链接, http://www.rabbitmq.com/install-rpm.html 不 ...
- Linux : Ubuntu 安装 RabbitMQ
安装 Erlang: 手动编译(不推荐)http://www.erlang.org/downloads下载源码 如22版本:http://erlang.org/download/otp_src_22. ...
- linux下安装rabbitmq 集群
1.下载erlang官网地址 http://www.erlang.org/download 挑选合适的版本 然后 wget 比如目前18.3运行命令 wget http://erlang.org/do ...
- linux下安装rabbitmq
1.安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机.安装erlang有两种方式: 第一种:使用yum安装: wget -O /etc/yum.repo ...
- linux下安装rabbitmq以及在spring中进行集成
### 一.安装erlang 1. yum install ncurses-devel 2. ./configure --prefix=/usr/local/erlang20 --without-ja ...
- 【Linux】Linux下安装RabbitMQ服务
一.安装步骤 1)安装erlang yum install -y erlang2)安装rabbitmq-serveryum install -y rabbitmq-server3)开启rabbitmq ...
随机推荐
- windows系统tomcat日志输出至catalina.out配置说明
转自:https://blog.csdn.net/liubowin/article/details/48001947 1.修改bin/startup.bat文件 修改前:call "%EXE ...
- javascript奇技淫巧之位运算符
奇技淫巧:指过于奇巧而无益还让人着迷的技艺与制品. And(与) & Or(或) | Exclusive Or(异或) 或者称 Xor ^ Not(非) ~ 位运算符,我们在日常js开发中其实 ...
- Solidworks如何在零件表面贴图
在要增加图片的表面上右击,然后选择修改这个面的颜色(可以是曲面) 切换到高级,然后选择一个图片 你可以缩放图片的大小,从而决定图片的重复次数 如果图片上下或者左右颠倒了,可以在映射里面勾选 ...
- 在线创建springboot项目
在线创建srpingboot项目的网址:https://start.spring.io/ 我只选了一个web,然后开始生成:
- Swift语言精要 - 扩展(Extension)
swift的Extension用户在不访问代码的情况下扩展基本结构类型或自定义类 extension Int { var doubled : Int { } func multiplyWith(ano ...
- 用javascript请求动态页url返回更新
例如我们用Ajax请求一个动态页返回的信息,或一个图片验证码请求一个*.ashx页面,第一次请求没问题,而第二次请求时,不变化,为啥? 因为第二次及以后请求的url与第一次是一样的,所以服务器(或是浏 ...
- Ubuntu/Centos 系统上安装与配置Apache
一.在线安装: Ubuntu:sudo apt-get install apache2 Centos: sudo yum install apache2 二.安装后的位置: 1.服务地址:/etc/i ...
- 算法笔记_222:串中取3个不重复字母(Java)
目录 1 问题描述 2 解决方案 1 问题描述 从标准输入读入一个由字母构成的串(不大于30个字符). 从该串中取出3个不重复的字符,求所有的取法. 取出的字符,要求按字母升序排列成一个串. 不同 ...
- python之模块配置文件ConfigParser(在python3中变化较大)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ConfigParser(在python3中为configparser) #特别注意:py ...
- Linux下RocksDB、LevelDB、ForestDB性能测试对比
简要说明 本次环境与http://www.cnblogs.com/oloroso/p/6306352.html中的一致. 依然是增删查改各测试10000次,每个测试重复5次取平均值. 1.不使用jem ...