多线程消费Kafka
一、概述
最近研究了一下多线程消费 Kafka ,其实大体可以分为两种方式,本文只介绍一种,相对而言比较通俗易懂。
创建线程池,程序启动多个线程,每个线程创建对应的消费者实例,负责完整的消息获取、处理、offset 提交。
优点 | 缺点 |
---|---|
实现方便 | 会占用更多的内存和TCP连接数。 |
速度快,无线程间交互开销 | 线程数受制于主题分区数。 |
易于维护分区内的消费顺序 | 当线程处理自己消息时容易超时,从而引发 Rebalance 。 |
简单来说,Java Consumer API 是单线程设计,KafkaConsumer 不是线程安全,就是不能在多个线程中共用一个 KafkaConsumer 实例,否则程序会抛出 ConcurrentModificationException 异常。
二、重要消费者配置
三、流程示例
1、获取 offset
2、提交 offset
订阅多个 topic ,看看会怎样。
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2021/01/14/Kafka/multi-thread-kafka-consumer.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)