是否可以在RMQ .NET中指定多个连接点?

Mat*_*ett 5 c# rabbitmq

正如标题所述,我想为RMQ .NET提供多个URI ConnectionFactory,希望它能自动故障转移到第一个可用的URI,而不是仅限于一个URI.

建立

使用Docker Quickstart终端(Docker Toolbox的一部分)我创建了四个容器,每个容器都在运行它的RMQ实例上.我已按如下方式对RMQ节点进行了聚类:

  • 下游(node1和node2)
  • 上游(node3和node4)

所述下游节点共享一个联合队列与所述上游节点,以增加吞吐量.

使用

我在C#中编写了一个简单的控制台应用程序,它将生成消息并将消息发布到node4(主要上游RMQ实例).

我想测试RMQ配置的冗余/自动故障转移,因为我已经为AutomaticRecoveryEnabled(docs)和TopologyRecoveryEnabled(docs)设置了标志并设置了联合队列.

但是,ConnectionFactoryRMQ .NET库提供的内容似乎不支持指定多个URI(docs).所以我不得不手动编写节点切换时处理节点之间的切换 - 我这样做是通过捕获节点不再可访问时抛出的异常然后ping所有节点来查看哪些节点是活动的.

有没有办法为ConnectionFactory提供多个Rabbit端点,以便它可以自动进行故障转移?

小智 1

使用pivotal提供的C#客户端,不行。恐怕你必须准确地做你正在做的事情。