背景:一個服務6臺實例,4臺內存使用率較低,另外2臺使用率較高,導致出現一些問題,
該服務爲zipkin-server服務,收集從kafka傳入的數據,並進行處理。
內存使用率如圖,2臺明顯內存利用率較高,另外4臺內存利用率則很低,
最後問題定位到,kafka的topic的partition上,查閱相關資料總結
topic 爲邏輯概念,生產者只需要確定講生產的數據寫入哪個topic中即可,而消費者只需要關注接收哪個topic即可。
partition爲物理概念,對用戶來講是透明的,一個topic可有多個partition(理解成水平擴展也行)
消費者數量 < partition數量
一臺機器可以消費多個partition
消費者數量 = partition數量
每臺機器消費一個patition
消費者數量 > partition數量
一臺個消費者消費一個patition,剩餘的機器空閒
根據以上皆是,我去查看一下,我們topic對應patition數量,結果發現正好4臺,
這就可以解釋了爲什麼4臺忙碌,2太空閒的原因了
參考:https://www.zhihu.com/question/28925721