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