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

设置

使用Docker Quickstart Terminal(Docker工具箱的一部分),我创建了四个容器,每个容器都在其上运行的RMQ实例上。
我将RMQ节点聚类如下:

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

  • 下游节点与上游节点共享Federated Queue以增加吞吐量。

    使用

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

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

    但是,RMQ .NET库提供的ConnectionFactory似乎不支持指定多个URI(docs)。因此,我不得不在节点发生故障时在节点之间进行切换的过程中手动编码-我通过捕获无法再访问节点时引发的异常,然后对所有节点执行ping操作,以查看哪些节点处于事件状态来进行此操作。

    是否可以为ConnectionFactory提供多个Rabbit端点,使其可以自动进行故障转移?

    最佳答案

    使用枢纽提供的C#客户端,否。您将不得不做我确实在害怕的事情。

    关于c# - 是否可以在RMQ .NET中指定多个连接点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36683201/

    10-16 03:45