kafka消费者--指定分区消费
kafka消费者有两种模式, 订阅模式和分配模式, 具体区别如下
模式 | 不同之处 | 相同之处 |
---|---|---|
subscribe() | 使用 Kafka Group 管理,自动进行 rebalance 操作 | 可以在 Kafka 保存 offset |
assign() | 用户自己进行相关的处理 | 也可以进行 offset commit,但是尽量保证 group.id 唯一性,如果使用一个与上面模式一样的 group,offset commit 请求将会被拒绝 |
如果使用assign,则表明该consumer是独立consumer(standalone consumer),它不属于任何消费者组。独立consumer可以订阅任何分区,彼此之间也没有关系,即两个独立consumer可以订阅并消费相同的分区
其他情况如下:
- assign + subscribe 冲突错误
java.lang.IllegalStateException: Subscription to topics, partitions and pattern are mutually exclusive
- assign + assign 后一个生效
- 2 个 consumer assign 同一个 partition 消费两次
- 一个 consumer assign 一个 consumer subscribe, rebalance 踢出 assign