RabbitMQ集群w/.Net客户端

Lan*_*lot 3 .net cluster-computing rabbitmq

我此时已经阅读了很多帖子和博客,我仍然不确定如何正确地集群我的2个RabbitMQ节点.

我已经阅读了RabbitMQ集群指南:http://www.rabbitmq.com/clustering.html

我在API指南中发现了一个神秘的ClusterId,没有解释如何首先获得该ID:http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v2.4.1/rabbitmq- DOTNET -客户端2.4.1-API指南.pdf

在StackOverflow帖子中了解到,基本上我需要让我的客户了解集群中的每个节点以及故障转移场景的代码:rabbitmq HA集群

现在......如果可能的话,我希望拥有的行为更加透明.我可能会在客户端上使用"ClusterId"来使消费者群集知晓,然后希望库知道随机连接到任一节点以获取消息.

当然,我知道一条消息一次只能在一台服务器上,所以我希望DotNet客户端库中的一些循环魔法能够处理故障转移情况.

我希望从发布者的角度来看,交换机将循环分发消息到集群中的各个节点.交换还可以识别群集并优雅地处理故障转移情况.

现在根据我的读数,它不是那样的工作......除非我错过了什么.如果我的知识是最新的,我必须编写所有集群感知业务的代码,那么......为什么RabbitMQ首先具有集群功能?怎么用?

有没有办法在没有编码那么多的情况下从RabbitMQ中获得这种行为?

谢谢

Tro*_*ydm 5

我正在使用HAProxy进行故障转移,并在集群节点之间为rabbitmq进行负载均衡,同样在.net客户端上,当节点出现故障时需要手动重新连接客户端.

以下是两个节点群集的HAProxy配置,节点在15672和25672端口上运行.客户端连接5672端口.

global
 daemon
 log 127.0.0.1 alert
 log 127.0.0.1 alert debug

defaults
 log global
 mode http
 option  dontlognull
 option  redispatch
 retries    3
 contimeout 5000
 clitimeout 50000
 srvtimeout 50000

listen rabbitmq 0.0.0.0:5672
  mode tcp
  balance roundrobin
  option  tcpka

server rabbit01 127.0.0.1:25672 check inter 5000 downinter 500

server rabbit02 127.0.0.1:15672 check inter 5000 backup
Run Code Online (Sandbox Code Playgroud)

本博客文章http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/