kafka消费速度跟不上生产速度的解决方案!
生活随笔
收集整理的這篇文章主要介紹了
kafka消费速度跟不上生产速度的解决方案!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雖說kafka是個高吞吐的消息中間件,有著削峰填谷的作用。
但是當consumer消費速度過慢時,大量的數據堆積,造成系統的異常。
所以以下給出幾種解決方案。
1、提高了partition的數量,從而提高了consumer的并行能力,從而提高數據的消費能力,也就是我們說的多線程消費,既然一個線程消費不過來,那么就多開線程,開十個線程,消費能力就提高了10倍。但前提是,要消費的topic的partition數也要相應的提高到10(partition數的大小決定最大消費線程數)。
2、批量發(fā)送消息的大小是否過大,發(fā)送的間隙是否過小。因為一次消費一批數據,然后在封裝處理,總比一次消費一條數據來得快,但要注意,處理這一批數據的時間可能比處理一條數據的時間來的久,如果處理時間太久,超過了kafka的認定時間,kafka就會認為這個消費者掛了,從而踢掉重新分配一個消費者。所以處理方式可以是:1,一次不拉過多的數據。2,kafka認定消費者掛了的時間設置久點。
3、當延遲較大時,可以觀察一下服務器的硬件使用參數,如果沒有沒有到達瓶頸,應該還是kafka參數設置的問題。
總結
以上是生活随笔為你收集整理的kafka消费速度跟不上生产速度的解决方案!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文彻底了解Logstash
- 下一篇: MapReduce太慢了,记一次对它的调