可能的原因包括消息流量达到网络带宽、单个消息大小超过网络带宽或者Consumer每次拉取的消息量超过网络带宽。

问题现象

Topic中有消息并且Consumer未消费到最新的位置,出现消费端从服务端拉取不到消息或拉取消息缓慢的情况(特别是公网消费时)。

可能原因

可能的原因包括:

  • 消费流量达到网络带宽。
  • 单个消息大小超过网络带宽。
  • Consumer每次拉取的消息量超过网络带宽。
    说明 Consumer每次消息的拉取量受以下参数影响:
    • max.poll.records:每次拉取的最多消息数。
    • fetch.max.bytes:每次拉取的最大总byte数。
    • max.partition.fetch.bytes:每个Partition每次拉取的最大总byte数。

解决方案

  1. 登录消息队列Kafka版控制台查询消息。
    如果能查询到消息,请继续尝试以下步骤。
  2. 实例详情页面,单击左侧导航栏的监控报警,查看消费流量是否已达到网络带宽。
    如果消费流量已经达到网络带宽,您需要扩充网络带宽。
  3. 检查Topic中是否存在单个消息的大小超过网络带宽。
    如果存在单个消息的大小超过网络带宽,请提高网络带宽,或者减小单个消息的大小。
  4. 检查Consumer每次拉取的消息量是否超过网络带宽。
    如果每次拉取的消息量超过网络带宽,您需要调整以下参数。
    • 网络带宽>fetch.max.bytes
    • 网络带宽>max.partition.fetch.bytes*总订阅Partition数