如何理解《SpringKafka》中的消费者和听众

nmpmafwu  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(451)

我使用带有多线程特性的SpringKafka(concurrentkafkalistenercontainerfactory),发现了两种类型的线程名:1#0-1-kafka-consumer-12#0-1-Kafka-3
那我怎么理解这两种线呢?他们之间是什么关系?提前谢谢!

cclgggtu

cclgggtu1#

在以前的Kafka版本中(< 0.10.1 )听得慢是一种痛苦。非活动消费线程被视为死线程,因此发生了重新平衡。这就是为什么我们引入线程免提,并将侦听器中处理的记录传递给单独的线程。所以,这些线程前缀正是关于这一点。
最新版本 2.0 ,基于Kafka 0.10.2 我们已经删除了这个逻辑,因为现在心跳发生在kafka客户机本身,并且正确。因此,我们不必再担心监听器速度慢了——现在一切都在消费者的线程上运行。

xyhw6mcr

xyhw6mcr2#

使用者线程轮询 KafkaConsumer 并将它们交给调用侦听器的侦听器线程。
早期版本的 KafkaConsumer 因为一个缓慢的监听器可能会导致分区重新平衡——心跳必须在使用者线程上发送。
他们现在已经把这个问题解决了 KafkaConsumer (心跳是在后台发送的)因此在2.0中,我们只有一种线程类型,侦听器在使用者线程上被调用。2.0.0.m2(里程碑2)现在可用;该版本计划在下个月底左右发布。

相关问题