springboot写的kafka客户端怎么多个消费者消费一个topic呢?

scattered and scattered 发表于: 2020-07-26   最后更新时间: 2020-07-26 14:12:25   7,332 游览

问下大佬,kafka怎么多个消费者消费一个topic呢?因为我发现一个消费者消费数据太慢了,kafka数据到今天7月26号了,可是我才消费到7月24号,我这边是属于消费者,消费客户的数据,用springboot写的,应该怎么在代码上加入呢

发表于 2020-07-26
¥1.0

你topic有了几个分区?消费者的数量小于等于分区数

大佬。这个不知道,分区不是我建的,是客户那边建的吧

ok,我们聚焦一下问题。

按照以上信息,其实我能理解的是,你只启动了一个java进程去消费消息(如果起2个java进程,如果2个进程都能消费到消息,那说明对方至少2+的分区)。

理论上,kafka消费者获取消息是一批一批的拿的(一批大概2000-3000条),一般是消费处理能力的不足,导致的消息积压。如果这种情况,你拿到消息之后,可以异步处理,不要堵在入口(注意停机时消息丢失问题)。

好的。谢谢大佬

大佬。我已经知道有5个区了。那我现在应该怎么增加消费者呢?topic和groupid一样?代码一样多开几个线程?就算增加消费者了吗?

最简单的方式是启动5个java进程。这样也是最合理的,分布式的

topic和groupid一样开5个java进程,会不会重复消费?

不会,参考消费者组的作用:
https://www.orchome.com/5#item-7

你的答案

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