kafka簡單調優

2021-10-04 13:02:35 字數 1018 閱讀 6681

1、batch.size:預設是16384byte,也就是16kb,生產者傳送多個訊息到broker上的同乙個分割槽時,為了減少網路請求帶來的效能開銷,通過批量的方式 來提交訊息,可以通過這個引數來控制批量提交的位元組數大小, 意味著當一批訊息大小達到指定的batch.size的時候會統一傳送。

2、linger.ms:預設0毫秒是立即傳送,配置後會把兩次傳送時間間隔內收集到的所有requests進行一次聚合然後再傳送,以此提高吞吐量,而linger.ms就是為每次傳送到broker的請求增加一些delay,以此來聚合更多的message請求。

batch.size 和 linger.ms的作用是一樣的,當二者都配置的時候,只要滿足其中乙個要求,就會傳送請求到broker上。

1、max.poll.records:預設500條,限制每次呼叫poll返回的訊息數,如果一次拉取太多訊息在max.poll.interval.ms預設300秒內沒有處理完就會被認為失敗,然後重新rebalance再次傳送訊息。

2、max.poll.interval.ms:預設300秒,如果在該時間內沒有處理完就會被認為失敗,然後重新rebalance導致訊息重複消費。

2、enable.auto.commit:預設是true,消費者消費訊息以後自動提交,只有當訊息提交以後,該訊息才不會被再次接收到,為true時還可以配合 auto.commit.interval.ms控制自動提交的頻率,預設5秒。 也可以通過consumer.commitsync()的方式實現手動提交。

產生訊息堆積的原因可能是訊息傳送的速率遠遠大於訊息消費的速率,或者是消費者出現問題無法消費。

當訊息傳送的速率遠遠大於訊息消費的速率時,可以考慮topic分割槽來增加消費者數量,或者消費者使用多執行緒,還有一點要注意是如果有入庫操作注意資料庫io是否跟得上。

消費者出現問題無法消費要排查**,或者可以部署多個消費者,這裡要注意了乙個topic分割槽只能被乙個消費者消費,乙個消費者可以消費多個topic分割槽,比如topic只有乙個分割槽,卻有3個消費者,這樣其中兩個消費者會閒置起來造成資源浪費,比例最好為1:1。

kafka配置資訊:

ELK簡單調優

es配置檔案 xpack.security.enabled true 允許安全驗證 bootstrap.memory lock true 開啟記憶體鎖,防止使用交換分割槽 bootstrap.system call filter false 重啟時系統禁止呼叫過濾器 transport.tcp.co...

kafka效能調優

1 網路和io操作執行緒配置優化 broker處理訊息的最大執行緒數 預設為3 num.network threads cpu核數 1 broker處理磁碟io的執行緒數 num.io threads cpu核數 2 2 log資料檔案刷盤策略 每當producer寫入10000條訊息時,刷資料到磁...

kafka效能調優

2 vim bin kafka server start.sh 調整kafka heap opts xmx16g xms16g 的值 2 3 4 broker處理訊息的最大執行緒數 num.network.threads 9 broker處理磁碟io的執行緒數 num.io.threads 16 s...