2011-06-27 22 views
1

我们如何使用RabbitMQ服务器实现Master_slave配置。 我已经在很多地方看过并亲身体验过Master_slave in RabbitMQ

“群集下的RabbitMQ节点不能真正共享除cookie文件外的其他文件,脚本本身确保它创建的文件夹和文件名称前缀为” $ NODE_ID $“,这样该节点的所有文件都将在一个文件夹内创建,它基本上创建了两个主文件夹,它们会执行以下操作: a。db:创建名为”$ NODE_ID $“的文件夹“-mnesia并创建其中的所有db文件 b。log:创建名称前缀为”$ NODE_ID $“的文件
即使我们调整两个节点的脚本以指向相同的mnesia文件夹,代理的第二个实例由于mnesia锁定问题将无法启动UE与以下错误:

{"init terminating in do_boot", 
{{nocatch,{error,{cannot_start_application,mnesia,{killed,{mnesia_sup,start,[normal,[]]}}}}},[{init,start_it,1},{init,start_em,1}]}} 
Crash dump was written to: erl_crash.dump init terminating in do_boot()". 

所有我想知道的是,如果在一个sitation,其中有2个节点的“主”,并在集群中,如果主人是下跌了一段时间“奴”,则该时间奴隶如何可以进入照片接收和代表主人发送消息。由于共享数据库是不可能的。

回答

0

看看用于构建高可用集群DRDB和心脏起搏器的指导方针:http://www.rabbitmq.com/pacemaker.html

然而,这是一个有点难以成立,所以你可能更愿意等待几个星期,随着下一个主要版本将包括对集群冗余队列的支持。查看更多有关在这里的附件:

http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-June/013304.html

+0

感谢link.I就已经出现了这种联系,但我没有太多的时间来实现整个起搏器啄。我想可能有其他办法。反正谢谢你的回复。 ;) –