问题现象
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数