kafka消費速度慢可以嘗試以下方法進行調優
1. 根據topic磁區數來調整消費者實體數
眾所周知,kafka為了保證訊息消費順序topic的每個磁區只能被消費者組中一個實體消費,
如果你的topic磁區數為36,則可以嘗試調整消費者實體數為36,當然這個是消費者ConsumerFactory.concurrency = 1的情況,如果你調整了執行緒數為n,則你的消費者實體數最優為Math.ceil(36/n),
2. 開啟消費者批量消費
可以把ConcurrentKafkaListenerContainerFactory.setBatchListener(true)開啟批量消費,并配置批量消費數ConsumerFactory.MAX_POLL_RECORDS_CONFIG = 100,默認為500
3. 消費者批量消費多執行緒處理
消費者使用執行緒池進行批量消費資料,建議不要使用execute,否則容易失控,建議使用submit然后得到future.get,get的時候會等待執行緒執行完,這種方式會把本次批量消費完再往下消費,
此時執行緒池的核心執行緒數就需要根據業務是IO密集型還是CPU密集型來決定,如果是IO密集型執行緒數可以多設定些,如果是CPU密集型執行緒數可以根據核心數來決定,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536081.html
標籤:其他
上一篇:OpenGL ES glut glew glfw glad freeglut
下一篇:java中的運算子
