IBM Cloud Docs
高可用性

高可用性

IBM Cloud® Messages for RabbitMQ 是完全集成到 IBM Cloud 环境中的受管云消息服务。 消息代理,存储器和支持基础结构都在 IBM Cloud中运行。

RabbitMQ 集群配置

Messages for RabbitMQ 提供复制,故障转移和高可用性功能,以保护数据库和数据免受基础架构维护,升级和故障影响。 部署包含一个具有三个节点的集群,其中用户,虚拟主机,队列,交换,绑定,运行时参数和其他分布式状态在所有三个节点之间共享。 如果节点发生故障,那么将删除或重新启动该节点,然后将其或新节点再同步到集群。 在再同步期间,您的部署仍可用于处理消息,尽管这是一个内存密集型过程。 有关更多信息,请参阅 性能 页面。

RabbitMQ 资源注意事项

作为在 Erlang 中实现的消息代理, RabbitMQ 完全依赖于 CPU 核心来调度其进程。 如果可用于运行这些进程的核心太少,那么可能会影响性能。 如果可用于处理这些资源的 CPU 资源太少,那么 RabbitMQ 将关闭连接。 请考虑 cpu 争用 ,并选择为作为生产系统运行的 RabbitMQ 提供足够 CPU 核心的资源配置。 在 RabbitMQ 部署中具有专用 CPU 资源还可防止嘈杂的邻居对资源 (例如 CPU 和内存) 产生影响。

高可用性队列配置

缺省虚拟主机配置为跨集群中的所有节点对其队列进行镜像,以提供 高可用性。 RabbitMQ 中的高可用性由 策略设置。 使用 管理帐户登录时,可以在 RabbitMQ 管理 UI , HTTPS API 或 rabbitmqadmin 中查看策略。

RabbitMQ 策略页面
图 1。 RabbitMQ 策略页面

您可以通过添加策略并将其设置为更高优先级来修改高可用性,但无法除去缺省策略。 缺省情况下,任何其他虚拟主机都没有高可用性策略集。 您应该向所有虚拟主机添加高可用性策略。

定额队列

可以使用 定额队列来管理高可用性。 使用定额队列可以显着提高部署的高可用性,尤其是在队列长期存在且其耐久性比其他功能更重要的情况下。 定额队列通过维护使用 raft 共识算法的定额来管理高可用性,并且当前主副本和大多数副本都同意队列的内容。 如果主节点发生某种情况,那么副本将选择下一个主节点。

RabbitMQ Documentation 涵盖 用例以及如何 在集群中实现定额队列

镜像队列

虽然首选定额队列,但 RabbitMQ 4 和先前版本中的缺省配置使用 镜像队列。 镜像队列配置为每个队列都包含集群的一个成员上的一个主队列,而这些队列的镜像存在于集群的其他成员上。 发布到队列的消息首先转至主队列,然后复制到镜像。 如果主节点发生某些情况,那么最早的同步镜像将提升为主节点。

应用程序的高可用性

通过网络和云服务进行通信的应用程序会发生瞬态连接故障。 此外,由于 Messages for RabbitMQ 是受管服务,因此定期更新和数据库维护是正常操作的一部分。 这些操作可能会导致连接中出现短暂的中断,因此您也可能会看到短暂的连接中断。

您希望设计应用程序以处理与部署或与 IBM Cloud的连接中的临时丢失。

RabbitMQ Documentation 在其 " 应用程序 " 部分下的 生产核对表中概述了可以执行哪些类型的操作来帮助使应用程序变得稳健和稳定。 它包含一些常规连接管理和恢复建议。

RabbitMQ 和 RabbitMQ 驱动程序支持各种功能,以帮助您设计弹性应用程序。

Messages for RabbitMQ 还随附了 Shovel 插件。 Shovels 可以处理连接,读写消息以及连接故障和重新发布。

不期望几分钟的数据库不可用性或连接中断。 如果您的时间段超过一分钟而没有连接,请打开 支持凭单 并提供详细信息,以便我们可以进行调查。

Messages for RabbitMQ 连接限制

在供应时, Messages for RabbitMQ 具有四个不同的端点,并按如下所示设置每个节点和每个端点的最大连接数:

  • HTTPS: 1024 个 3 节点 = 3072
  • AMQPS: 20000 个 3 节点 = 60000
  • MQTTS: 20000 个 3 节点 = 60000
  • STOMPS: 20000 个 3 节点 = 60000

如果与数据库的连接数超过连接限制,那么新连接将失败并返回错误。

监视高可用性

Messages for RabbitMQ 具有 IBM Log Analysis 集成 ,以便您可以查看实时日志和历史日志。

检查部署日志可帮助您监视部署的 HA 和复制状态。 如果您的应用程序存在持续问题,那么当您迂到连接故障或其他中断时,日志还可以提供对数据库上发生的情况的洞察。

RabbitMQ 可靠性指南

RabbitMQ Documentation 提供了出色的 可靠性指南 ,涵盖与确保集群正常运行和数据具有弹性相关的广泛主题。 它还涵盖了可供您作为用户监视部署,连接,队列和消息以确保平稳操作的功能。

高可用性,灾难恢复和 SLA 资源

Messages for RabbitMQ 部署符合 IBM Cloud 数据库 HA , DR 和 SLA 术语。