假设有3个Topic,为t1到t13。 t1的分区数为4 t2的分区数为12 t3的分区数为48 第一种消费模式,不同的topic,启动对应分区数的线程去订阅。即4个线程去消费t1,12个线程去消费t2,48个线程去消费t3。 第二种模式。一共启动48个线程,每个线程都订阅t1,t2,t3. 我测试了一下,感觉差不多,无法分辨出哪种更好。我感觉第二种应该会有问题,但是说不出来哪有问题。 请教一下大家,大家对这两种模式的看法?
一个程序没必要用那么多线程吧,逻辑复杂增加很多。kafka是批量拉取消息的,一次拉取1000-2000条,处理的时候可以考虑多线程处理。(springboot kafka有现成的实现)
我推荐如果想分摊压力,多启动几个程序。毕竟单台机器的cpu有限,可以在不同的机器分别启动程序。
这个就成分布式的了,逻辑简单,容错率高。
嗯,上面只是举个例子。多启动几个程序。每个程序也可以选择,一个线程订阅一个topic,或者多个线程统一订阅所有topic。你觉得哪种更好?
多线程,另外你这个场景概率很低被使用,基本上topic里的消息格式都不同,无法共用。
你的答案