可能的原因包括消息流量达到网络带宽、单个消息大小超过网络带宽或者Consumer每次拉取的消息量超过网络带宽。
问题现象
Topic中有消息并且Consumer未消费到最新的位置,出现消费端从服务端拉取不到消息或拉取消息缓慢的情况(特别是公网消费时)。
可能原因
可能的原因包括:
消费流量达到网络带宽。
单个消息大小超过网络带宽。
Consumer每次拉取的消息量超过网络带宽。
说明Consumer每次消息的拉取量受以下参数影响:
max.poll.records:每次拉取的最多消息数。
fetch.max.bytes:每次拉取的最大总byte数。
max.partition.fetch.bytes:每个Partition每次拉取的最大总byte数。
解决方案
登录云消息队列 Kafka 版控制台查询消息。
如果能查询到消息,请继续尝试以下步骤。
在实例详情页面,在左侧导航栏选择 ,在监控图表页签查看实例公网读取带宽(bit/s)是否已达到网络带宽。
如果消费流量已经达到网络带宽,您需要扩充网络带宽。
检查Topic中是否存在单个消息的大小超过网络带宽。
如果存在单个消息的大小超过网络带宽,请提高网络带宽,或者减小单个消息的大小。
检查Consumer每次拉取的消息量是否超过网络带宽。
如果每次拉取的消息量超过网络带宽,您需要调整以下参数。
网络带宽>fetch.max.bytes
网络带宽>max.partition.fetch.bytes*总订阅Partition数
重要
当消费者使用的是VPC网络时,文中的网络带宽指的是实例的网卡写流量峰值。
当消费者使用的是公网时,文中的网络带宽指的是实例的公网流量带宽。