Kafka消费者拉取模式疑惑

刘浪 发表于: 2022-11-25   最后更新时间: 2022-11-28 07:58:19   796 游览

假设有3个Topic,为t1到t13。

  • t1的分区数为4
  • t2的分区数为12
  • t3的分区数为48

第一种消费模式,不同的topic,启动对应分区数的线程去订阅。即4个线程去消费t1,12个线程去消费t2,48个线程去消费t3。

第二种模式。一共启动48个线程,每个线程都订阅t1,t2,t3.

我测试了一下,感觉差不多,无法分辨出哪种更好。我感觉第二种应该会有问题,但是说不出来哪有问题。

请教一下大家,大家对这两种模式的看法?

发表于 2022-11-25
添加评论

一个程序没必要用那么多线程吧,逻辑复杂增加很多。kafka是批量拉取消息的,一次拉取1000-2000条,处理的时候可以考虑多线程处理。(springboot kafka有现成的实现)

我推荐如果想分摊压力,多启动几个程序。毕竟单台机器的cpu有限,可以在不同的机器分别启动程序。

这个就成分布式的了,逻辑简单,容错率高。

刘浪 -> 半兽人 2年前

嗯,上面只是举个例子。多启动几个程序。每个程序也可以选择,一个线程订阅一个topic,或者多个线程统一订阅所有topic。你觉得哪种更好?

半兽人 -> 刘浪 2年前

多线程,另外你这个场景概率很低被使用,基本上topic里的消息格式都不同,无法共用。

你的答案

查看kafka相关的其他问题或提一个您自己的问题