消費者消費過程解析
- cousumer 向boker 集羣提交鏈接請求,返回 broker controller 的通訊url
- consumer 指定要消費的topic 後, 向broker bontroller提交 消息請求
- broker controller 將consumer 分配一個或者多個 partition leader 。而且將對應的parittion的offset 發送給 consumer
- consumer 消費完消息後,消費者會向broker 發送一個消息被消費的反饋。也就是提交 該消息的offset
- 當broker 接收到 offset 後,會更新到對應的consumer_offset中
重複消費問題
當消費者消費能力較低 而引起了 消費超時的時候,就會造成重複消費。 當時間到達的時候,剛好有一個消息被消費掉了。可是沒有提交offset
。就會出現重複消費的問題url
將自動提交改爲樹洞提交。或者是延遲kafka的 提交時間kafka
消費者提交offset
- 消費者的offset 具體存放到哪一個partition中?
- 消費者都會隨機生成一個消費者id 而後取hash。模50 獲得一個下角標。存到對應的offset中。