如果当前使用的消息队列 RocketMQ版指标值超过实例的某项规格限制,实例集群运行负载超过推荐负载上限,可能会触发限流机制。建议您及时关注实例运行的各项规格指标数据,在触发限流前调整实例规格。本文档介绍需要调整实例规格的典型业务场景。
计算规格升配涉及到 RocketMQ 实例计算资源的调整,升级计算规格可以提高实例的吞吐量、降低请求时延。消息队列 RocketMQ版推荐您根据以下指标来判断是否有必要进行计算规格升配。当符合下面任意一类情况时,可以考虑进行规格升配。
消息队列 RocketMQ版实例的各个计算规格的 TPS 上限不同,该限制以 4KiB 大小的消息为基准。不同的业务的消息大小可能差异很大,因此不能仅通过 TPS 来判断是否达到吞吐量上限,推荐您使用生产和消费的总带宽流量来整体估算业务流量是否达到实例的吞吐量上限。
推荐您在业务实际使用的总带宽达到实例带宽上限的 85% 时,进行实例升配操作。其中:
随着业务持续增长,当 TPS 增加伴随着生产和消费的请求时延开始显著增加,或者消息生产开始出现因流控限制而失败的情况时,推荐您升配实例。观测方式如下:
您可以在 RocketMQ 实例的云监控页签中查看消息生产P99耗时、消息消费P99耗时和写入消息失败速率。详细说明请参考查看监控数据。
RocketMQ 的应用场景之一就是削峰填谷,当业务存在短时波峰导致以上情况出现,可结合业务对时延的容忍度以及波峰产生时是否有实际影响来选择是否升配实例。
RocketMQ在磁盘水位达到 75% 时,会触发删除消息回收磁盘空间,此时即使消息没有达到过期时间也会被删除。如果您的业务需要保证消息保留时间,当磁盘水位接近 75% 时,推荐您进行磁盘空间扩容。
对于需要保证消息保留时长的实例,可以通过以下方式预估需要的存储空间:
说明
为了避免业务流量迅速猛增时,大量消息占满磁盘空间、超过实例规格阈值,触发各种流控限制,推荐您针对部分监控项创建告警策略,监控实例运行状态。创建告警后无需时刻关注实例运行的各项指标,仅需要在触发告警时结合以上场景判断方式决定是否需要升配。
针对升配场景推荐配置的告警策略如下,持续时间可结合业务波峰持续时间经验值设置,建议超过阈值 1 个周期以上时触发告警,详细的配置方式及阈值请参考推荐设置的告警规则。
场景 | 监控指标 | 说明 |
---|---|---|
计算规格升配 | 实例生产消费总速率 | 推荐配置最大值告警,阈值可根据实例吞吐量接近规格上限中推荐的方式估算。 |
实例生产消费流量速率 | 推荐配置最大值告警,阈值可根据实例吞吐量接近规格上限中推荐的方式估算 | |
消息生产P99耗时 | 推荐配置最大值告警,具体耗时和业务消息大小有关,可按照稳态运行时的 2 倍配置阈值。 | |
写入消息失败速率 | 最大值告警,推荐配置为大于 0 时触发告警。 | |
存储空间扩容 | 实例磁盘使用率 | 最大值阈值为 75% 触发,监控值大于阈值并持续一个周期时触发告警。 |