我的RabbitMQ群集是Active Active还是Active Passive?

 手机用户2602926907 发布于 2023-01-29 14:16

我使用join_cluster命令创建了一个由三个RabbitMQ节点组成的集群.

rabbitmqctl –n rabbit2@MYPC1 join_cluster rabbit2@MYPC1 

(目前集群在一台计算机上运行)

问题:
在文档中,它说有一个主动被动实现,一个主动主动.

    我配置了什么?

    我怎么知道?

    怎么改变?

    Active Active和Active Passive之间是否有很大的性能折衷?

    与主动/主动互动的最佳做法是什么?
    即安装负载均衡器?将要循环的阿帕奇

    与主动/被动交互的最佳实践是什么?
    如果我只与活动交互 - 这是单点f失败

谢谢.

1 个回答
  • 我一直在用RabbitMQ对可用性选项进行一些研究,虽然我还很新,但我会尝试用我所拥有的知识回答你的问题.请理解这些答案并非全面.

    在得到问题和答案之前,我认为值得指出的是,我认为在单个计算机上运行的集群环境中使用"主动/主动"和"主动/被动"这两个术语并不适用.主动/主动和主动/被动通常是用于描述高可用性群集的术语,其中您具有多个逻辑服务器(在您的情况下,多个RabbitMQ群集),共享/冗余存储,网络功能,电源等的系统.

      我配置了什么?
      如果没有为群集中的节点或队列镜像进行任何负载平衡,则两者都没有,这意味着您没有高可用性群集.

      我怎么知道?
      RabbitMQ不提供任何连接管理,因此具有故障节点的流量不会自动传递到其他节点,这是主动/主动群集所必需的.如果没有队列镜像,则群集中没有完全冗余的节点,这是主动/被动所必需的.

      怎么改变?
      即使您实现负载平衡和/或队列镜像,您也缺少一些要求来提供高可用性RabbitMQ集群.首先,使用RabbitMQ群集,您只有一个逻辑代理(HA群集至少需要两个).

      Active Active和Active Passive之间是否有很大的性能折衷?
      我认为,当您开始引入数据复制和/或冗余时,您将开始看到性能损失,这会影响主动/主动和主动/被动.如果使用同步数据复制,那么与异步复制数据相比,您将看到更大的性能损失.还有更多内容,但对我而言,使用Active/Active可能会有更大的性能影响,但这在很大程度上取决于所有部分的协作速度.在Active/Passive中,您可能在服务器之间使用异步复制,性能可能会更好,但在故障转移情况下,您需要等待该复制完成才能切换到辅助服务器.

      与主动/主动互动的最佳做法是什么?即安装负载均衡器?将循环的apache RabbitMQ建议使用负载均衡器,这样您就不必将
      有关群集中节点的详细信息泄露给客户端.

      与主动/被动交互的最佳实践是什么?如果我只与活动交互 - 这是单点故障
      这是一个故障点,但使用主动/被动,您可以实施故障策略来重试下一个可用服务器或所有剩余服务器.有了这些策略,您就可以建立一个场景,在发生故障转移而不是完全不可用时,集群的功能只会降级.此外,您可以与被动方进行交互,但交互类型可能非常不同(即只读访问),因为被动方可用的资源可能较少,并且数据复制可能会有延迟.

    以下是用于收集此信息的一些参考:

    维基百科上的高可用性群集

    使用RabbitMQ进行聚类

    RabbitMQ群集中的高可用队列

    RabbitMQ的高可用性

    2023-01-29 14:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有