gpt4 book ai didi

.net - RabbitMQ 集群 w/.Net 客户端

转载 作者:行者123 更新时间:2023-12-01 11:56:21 25 4
gpt4 key购买 nike

此时我已经阅读了很多帖子和博客,但我仍然不确定如何正确地集群我的 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-client-2.4.1-api-guide.pdf

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

现在...如果可能的话,我想要的行为更透明一些。我可能会在客户端上使用该“ClusterId”来让消费者集群知道,然后希望库知道随机连接到任一节点以获取消息。

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

我还希望从发布者的角度来看,交换将循环将消息分发到集群中的各个节点。交换也将是集群感知的并优雅地处理故障转移情况。

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

有没有一种方法可以在不编写那么多代码的情况下从 RabbitMQ 中获得这种行为?

谢谢

最佳答案

我正在使用 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

感谢这篇博文 http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/

关于.net - RabbitMQ 集群 w/.Net 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com