小编rho*_*dan的帖子

如何使用主动/被动高可用性架构配置RabbitMQ

我正在尝试设置RabbitMQ服务器集群,以使用主动/被动服务器架构获得高可用性队列.我正在遵循这些指南:

  1. http://www.rabbitmq.com/clustering.html
  2. http://www.rabbitmq.com/ha.html
  3. http://karlgrz.com/rabbitmq-highly-available-queues-and-clustering-using-amazon-ec2/

我对高可用性的要求很简单,我有两个节点(CentOS 6.4)与RabbitMQ(v3.2)和Erlang R15B03.Node1必须是"活动的",响应所有请求,Node2必须是"被动"节点,其中包含所有队列和消息(来自Node1).

为此,我配置了以下内容:

  • RabbitMQ的Node1在非集群模式下工作正常
  • RabbitMQ的Node2在非集群模式下工作正常

我接下来要做的是在两个节点之间创建一个集群:将Node2加入Node1(指南1).之后,我配置了一个策略来镜像队列(指南2),复制集群中所有节点之间的所有队列和消息.这可行,我可以连接到任何节点并发布或使用消息,同时两个节点都可用.

当我有一个在Node1上创建的队列"queueA"(队列A上的主服务器),并且当Node1停止时,我无法连接到Node2中的queueA来生成或使用消息时,Node2会抛出错误说Node1不可访问(我认为queueA没有被复制到Node2,并且Node2不能被提升为queueA的master).

错误是:

{"AMQP操作被中断:AMQP关闭原因,由Peer发起,代码= 404,text = \"NOT_FOUND - vhost'app01'中持久队列'queueA'的主节点'rabbit @ node1'关闭或无法访问\ ",classId = 50,methodId = 10,cause ="}

使用的步骤顺序是:

节点1:

1. rabbitmq-server -detached
2. rabbitmqctl start_app
Run Code Online (Sandbox Code Playgroud)

节点2:

3. Copy .erlang.cookie from Node1 to Node2
4. rabbitmq-server -detached
Run Code Online (Sandbox Code Playgroud)

加入集群(Node2):

5. rabbitmqctl stop_app
6. rabbitmqctl join_cluster rabbit@node1
7. rabbitmqctl start_app
Run Code Online (Sandbox Code Playgroud)

配置队列镜像策略:

8. rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Run Code Online (Sandbox Code Playgroud)

注意:用于队列名称的模式是""(所有队列).

当我运行'rabbitmqctl list_policies'和'rabbitmqctl cluster_status'时一切正常.

如果Node1不可用,为什么Node2无法响应?这个设置有什么问题吗?

high-availability message-queue rabbitmq

13
推荐指数
2
解决办法
6517
查看次数

Java如何提取完整的XML块

使用此XML示例:

<A>
  <B>
    <id>0</id>
  </B>
  <B>
    <id>1</id>
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

我想要一个简单的方法来提取节点B的XML块,返回XML String:

<B>
  <id>1</id>
</B>
Run Code Online (Sandbox Code Playgroud)

要检索此节点,我应该使用一些Java XPath库,如XOM或Java XPath,但我找不到如何获取完整的XML字符串.

我使用C#找到了两个等效的回答问题: C#如何提取完整的xml节点集以及如何从XML文档中提取XML块?

java xml xpath xom

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

high-availability ×1

java ×1

message-queue ×1

rabbitmq ×1

xml ×1

xom ×1

xpath ×1