从网上查阅资料知道,RabbitMQ 想要做 故障转移+高可用+负载均衡 有两种方式(不考虑客户端路由的情况)
Nginx
( 1.90 后的 stream 模块)HAProxy + KeepAlived
两种方案貌似都能实现(也不是特别的确定,根据目前搜集到的资料来说是可以的)。纠结点就在于这,选哪一种?
目前我们现状是这样子的,生产还没有过使用了 HAProxy + KeepAlived
的场景;而 Nginx
是我们已有的技术栈。所以从成本和风险上来说,肯定是首先选择 Nginx
;但我看目前网上资料大部分又都是选了 HAProxy + KeepAlived
,这就让我很疑惑了。
AMQP
协议支持更加全面?有经验的大牛们,知道这两者的区别到底在哪吗
1
hanyu2pomelo 2023-07-27 16:24:34 +08:00
KeepAlived+Nginx+ RabbitMQ,高可用+负载均衡,岂不美哉
|
2
perfectlife 2023-07-27 16:26:11 +08:00
我感觉没区别,要我我就选 nginx 四层代理,简单省事,另外高可用你用镜像集群模式应该就可以了吧,至于性能,反正用 rabbitmq 就别太要求太高的性能了
|
3
Scarb 2023-07-27 16:27:08 +08:00
应该都可以,不觉得 HAProxy 更优秀
|
4
onetown 2023-07-27 16:28:05 +08:00
rabbitmq, 负载均衡就可以了吧, 还要做故障转移, 是消息都没 ack 吗?
rabbitmq 是目前我用下来 cluster 最简单的一个消息队列组件了, 配置好, 直接无脑配置 haproxy 的 backend, server1,2,3 就可以了, 不过需要 haproxy 加 option clitcpka, 用来 keepalive (不是 keepalived), 我在想 op 是不是把这个 clitcpka 和 keepalived 搞混了。 |