kafka 消費?
阿新 • • 發佈:2018-01-05
kafka .com 分享圖片 消息 圖片 出現 事件 連接超時 監聽
- 前置資料 kafka
- kafka消費中的問題及解決方法:
- 情況1:
- 問題:腳本讀取kafka 數據,寫入到數據庫,有時候出現MySQL server has gone away,導致腳本死掉。再次啟動,這過程中的kafka數據丟失。
- 原因:MySQL server has gone away 出現可能是連接超時,可能超過每秒請求上限…這些異常是小概率事件,難以避免。git kafka 的demo腳本是實時監聽的腳本, 簡單明了,沒有再去針對kafka偏移量研究;但是一旦斷掉, 過程中的kafka數據即丟失。
- 解決思路MySQL server has gone away無法避免,try catch 即可,異常消息存入日誌中。通過數據補償腳本把日誌中的數據存入數據庫,做到正常 異常的數據最終都能錄入數據庫。且腳本也不會異常死掉。腳本其他原因死掉(如服務器宕機),通過集群控制風險。
- 情況2:
- 問題:kafka消費時做數據檢驗,數據處理。代碼看的很混亂, 且一旦業務調整或者有bug意味著要停止消費後重啟。風險高,維護困難。
- 解決思路:解藕。kafka消費腳本只負責把數據寫入數據庫,標識初始狀態。業務處理腳本集中處理數據。
- kafka 消費時序圖
kafka 消費?