分布式消息服务ROCKETMQ版-消息堆积处理建议:实施方法

时间:2024-10-15 17:23:21

实施方法

为了避免在实际业务中出现非预期的消息堆积问题,需要在业务系统的设计阶段梳理业务逻辑的消费耗时和设置消费并发度。

  • 梳理消费耗时

    通过压测获取消息的消费耗时,并对耗时较高的操作代码逻辑进行分析和优化。梳理消息的消费耗时需要注意以下几点:

    • 消息消费逻辑的计算复杂度是否过高,代码是否存在复杂的递归和循环处理。
    • 消息消费逻辑中的I/O操作是否是必须,是否可以使用本地缓存等方案规避。
    • 消息消费逻辑中的复杂耗时操作是否可以做异步化处理。
  • 设置消费并发度

    对于消费并发度的计算,可以按如下方法进行处理:

    1. 根据公式计算出线程数的理想值,然后选取一个比理想值小的数据作为线程数起始值。逐步调大单个客户端的线程数,并观测客户端的系统指标,得到单个客户端的最优消费线程数和消息吞吐量。
    2. 根据上下游链路的流量峰值,计算出需要设置的客户端数量:客户端数=流量峰值/单客户端消息吞吐量。
support.huaweicloud.com/bestpractice-hrm/hrm-bp-005.html