可能的原因包括訊息流程量達到網路頻寬、單個訊息大小超過網路頻寬或者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網路時,文中的網路頻寬指的是執行個體的網卡寫流量峰值。
當消費者使用的是公網時,文中的網路頻寬指的是執行個體的公網流量頻寬。