相关疑难解决方法(0)

rabbitmq HA集群

我想将RabbitMQ设置为具有HA的两个(或更多)节点集群.

使用案例:客户端生产者应用程序(C#.NET)知道群集有两个节点并发布到群集.各种消费者应用程序(也称为C#.NET)连接到群集并获取生产者生成的所有消息.只要至少有一个节点启动并运行生产者,消费者就会继续工作而不会出错.假设节点A和B正在运行而B死了一段时间,然后重新启动,然后一段时间A死亡,客户端都继续运行而没有收到错误,因为在任何时候至少有一个节点启动.

是否可以开箱即用?

对于Windows/.NET应用程序环境,是否有更适合(商业上可行)的其他MQ?

high-availability rabbitmq

3
推荐指数
2
解决办法
5349
查看次数

为rabbitmq配置HAProxy

我想使用HAProxy作为负载均衡器.我想把两个rabbitmq服务器放在haproxy后面.rabbitmq服务器都在EC2的不同实例上.我按照此引用配置了HAProxy服务器.我的工作但问题是消息不以roundrobin模式发布.消息仅在一台服务器上发布.我的要求有不同的配置吗?

我在/etc/haproxy/haproxy.cfg中的配置

listen rabbitmq 0.0.0.0:5672
     mode    tcp
     stats   enable
     balance roundrobin
    option tcplog
    no  option clitcpka
    no option srvtcpka
     server  rabbit01 46.XX.XX.XX:5672 check
     server  rabbit02 176.XX.XX.XX:5672 check
listen  web-service *:80
          mode    http
         balance roundrobin
        option httpchk HEAD / HTTP/1.0
         option httpclose
        option forwardfor
        option httpchk OPTIONS /health_check.html
        stats enable
        stats refresh 10s
        stats hide-version
        stats scope   .
        stats uri     /lb?stats
        stats realm   LB2\ Statistics
        stats auth    admin:Adm1nn
Run Code Online (Sandbox Code Playgroud)

更新:

我对此进行了一些研发,发现HAProxy是在rabbitmq服务器上进行循环连接.例如:如果我请求10个连接,那么它将在我的2个rabbitmq服务器上循环10个连接并发布消息.

但问题是我想要循环消息,而不是它应该由HAProxy服务器管理的连接.即如果我一次向HAProxy发送1000 msg,那么500 msg应该转到兔子服务器1,500 msg应该转到兔子服务器2.我必须遵循的配置是什么?

更新:

我还测试了lessconn的平衡,但HAProxy的行为是出乎意料的.我在serverfault.com上发布了这个问题

java load-balancing haproxy round-robin rabbitmq

3
推荐指数
1
解决办法
8091
查看次数