kafka消费者poll及消费时间(Kafka消费者调优)
导读:kafka消费速度慢可以尝试以下方法进行调优 1. 根据topic分区数来调整消费者实例数...
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密集型线程数可以根据核心数来决定 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!