Kafka的參數調優


這篇文章主要說一下在生產過程中的kafka常用的調優參數,

首先kafka的版本是0.9.0.1,針對以下幾個方面來說,

針對kafka的堆內存:

 

 針對kafka的集群調優:

kafka的的消息機制有三種,同步 異步和 oneway

同步(sync)的意味着消息是以batch的方式push,這樣會極大的提高broker的性能,但這樣也會增加數據丟失的風險

異步(async)的參數比較多,主要有四個參數

其中第二個消息確認機制參數有三種,當它的值為1時,kafka的leader 的partition會接受到數據,但如果leader掛了,數據會丟失.如果設置為0,那么producer不會等到broker的響應,也就是說producer不管消息發出去的死活,這樣可以得到最大的吞吐量,但是數據丟失風險極高.如果設置為-1,那么producer會等到所有的partition收到消息時候等到broker的一個確認.這樣可以保證最高可靠性,但同時時效性也就降低了.

第三個參數表示緩存消息的時間,例如5秒在將數據發出去,吞吐量增大了,同時時效性也就降低了

第四個參數表示緩存的最大消息數量

第五個參數當設置為-1時,消息會阻塞,不會丟掉,當設置為0時,buffer隊列滿了會直接丟掉.

第六個參數表示一批數據量的大小,當達到這個數值時候,producer才會發送數據.

對於ONEWAY來說,消息可靠性最低,但是低延遲,高吞吐,對於某些不需要高可靠性的場景比較適用.

此外 在server.properties中可增加兩個參數 

replica.socket.timeout.ms = 300000 #當集群之間網絡不穩定時,調大該參數

replica.lag.time.max.ms= 600000# 如果網絡不好,或者kafka集群壓力較大,會出現副本丟失,然后會頻繁復制副本,導致集群壓力更大,此時可以調大該參數

在consumer.properties中可增加兩個參數

zookeeper.connection.timeout.ms = 60000

zookeeper.sync.time.ms = 5000 

上面兩個參數時間間隔可調大一點,避免網絡問題引起的節點誤判下線

最后合理設置副本數,如果broker的數量為5,那么副本設置3個足夠,避免過多的冗余.

以上就是常用的kafka參數調優,如有其它,歡迎大家補充.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM