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 ...
随机推荐
- (转)【Unity Shaders】Vertex Magic —— 访问顶点颜色
转自:http://blog.csdn.net/candycat1992/article/details/38147767 本系列主要参考<Unity Shaders and Effects C ...
- [Spring Boot] Complex Scope Scenarios of a Spring Bean - Mix Prototype and Singleton, ScopeProxy
We have the following example: @SpringBootApplication public class In28minutesScopeApplication { pri ...
- Mac 隐私与安全没有允许任何来源选项
mac 允许任何来源的 app 在 macOS Sierra 10.12 及之后的版本,都没有 打开任何来源 的选项,解决方法: 终端执行命令: sudo spctl --master-disable
- iOS开发点滴 - 关闭键盘
有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘. 1. 首先,视图控制器必须遵 ...
- asp.net 除法保留小数
(Convert.ToDouble(num1)/Convert.ToDouble(num2)).ToString("0.00"); .只要求保留N位不四舍5入 float f = ...
- EFI/UEFI BIOS启动
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.它是可扩展固件接口标准的一部分,用来替代BIOS中的主开机纪录分区表.但因为MBR分区表不支持容量 ...
- idea maven项目如何使用lib下得jar包
在项目开发中,一般使用maven来管理项目,但有时还需要引用本地lib下的jar包 比如,中央仓库没有jar包.这时我们就需要引入lib下的jar包了. 1.首先在dependencies里加入本地j ...
- VB数组的清除
在一个程序中,同一数组只能用Dim语句定义一次.但有时可能需要清除数组的内容或对数组重新定义,这可以用:Erase语句来实现. 格式:Erase(数组名)[,(数组名)] 功能:用于重新初始化静态数组 ...
- llvm code call graph
https://www.ics.usi.ch/images/stories/ICS/slides/llvm-graphs.pdf
- mingw 构建 mysql-connector-c-6.1.9记录
1.准备工作 首先需要下载mysql-connector-c-6.1.9的源码,然后解压. 然后需要准备编译环境,这里我使用的是msys2(下载地址http://repo.msys2.org/dist ...