我已经看到很多关于这个问题的问题,但我不太相信。有没有办法让更多不同的消费者拥有与分区号不同的group.id
值?
在java代码中实现这个是一个很好的解决方法吗?
答案 0 :(得分:0)
Kafka中的消费者群体是消费数据的并行方式之一。多个消费者可以加入一个消费者群体,这样每个消费者都可以使用来自Kafka主题的不同分区的数据。
除上述内容外,Kafka还可以使用group.id
跟踪特定群组的活跃消费者。
因此,拥有比分区更多的消费者是无效的,因为每个分区仅由消费者组中的一个消费者使用以维持消费的消息的总顺序。 Kafka仅提供所有分区的总排序,而不是维护每个分区的顺序。
但是,您仍然可以让多个消费者群体使用相同的主题,这更像是发布/订阅而不是点对点。
答案 1 :(得分:0)
如果您有不同的组ID,则分区不会分配给同一个使用者组。
基本上,如果您有N个分区和M个不同的组ID,则最多只能有N * M个消费者线程从该主题进行轮询。更多,你已经为一个特定的群体超额认购。