You need to enable JavaScript to run this app.
导航
RocketMQ 集群扩容实践
最近更新时间:2024.12.31 10:32:29首次发布时间:2024.12.31 10:32:29

火山引擎 RocketMQ 提供了多种计算规格和存储容量,其中集群的 TPS 使用率和 CPU 使用率在一定程度上决定了集群的负载能力。但在实际使用过程中,由于业务的差异性,集群的实际负载可能受到多种因素的影响,因此在扩容集群容量时,需从集群部署方式、负载情况、TPS 使用率、CPU 使用率等多方因素考虑,选择合适的产品规格进行扩容。

适用的产品规格

RocketMQ 4.x 版本的 N1 及以上规格;5.x 版本的 2k TPS 以上规格。

查看指标

您可以通过 RocketMQ 控制台或云监控控制台查看 TPS 使用率、CPU 使用率等指标。具体操作,请参考查看监控数据

场景1:TPS 使用率高

TPS 使用率高时,建议您依据集群的具体部署模式和实际负载情况,合理规划集群容量。当集群负载超过如下参考标准时,建议及时调整集群规格。

可用区部署

说明

单可用区部署

当您的集群部署在单个可用区时,建议将集群负载的最大值控制在 70% 左右。

多可用区部署

当您的集群部署在多个可用区时,为了保障某个可用区发生非预期的异常时,其余可用区可以正常负载运行,还需要考虑冗余情况。例如:

  • 2 个可用区部署:可用区 A 不可用时,可用区 B 需结合 70% 的使用率,因此建议集群常态负载保持在 35% 以下。
  • 3 个可用区部署:可用区 A 不可用时,可用区 B 和 C 需结合 70% 的使用率,因此建议集群常态负载保持在 47% 以下。

场景2:TPS 使用率低但是 CPU 使用率高

在某些特殊业务场景下,TPS 使用率低但 CPU 使用率高,此时需要结合 CPU 使用率进行集群扩容。建议单节点的 CPU 使用率不高于 60%,如果高于 60%,需要根据当前集群的 CPU 使用率进行线性扩容。示例如下:

  • 集群现有规格
    集群的推荐 TPS 峰值为 5,000,CPU 使用率为 80%,TPS 使用率为 50%。
  • 扩容目标
    • 业务流量增加 50%。
    • CPU 使用率降低到 60%。
  • 扩容方案
    • 计算扩容系数 = 80%/60%*(1+50%)= 2
    • 预留冗余系数 = 30%
    • 扩容后的规格 = 5,000 * 扩容系数 * 预留冗余系数 = 5,000 * 2 * (1+30%) = 13,000。
      即推荐扩容至推荐 TPS 峰值为 20,000 的规格。产品规格说明,请参考产品规格