将 Apache Camel 配置为 Apache Kafka 的使用者时,您可以设置许多配置选项,包括与此问题相关的以下选项:
groupInstanceId
。 consumersCount
。
consumersCount
参数允许 Kafka 消费者的多个实例从单个部署运行。 Camel 代码将并行启动多个 Kafka 消费者。
groupInstanceId
参数改变了Kafka与消费者交互的方式,从动态消费者变成了静态消费者;这确保相同的组实例始终分配给相同的分区。
现在,我对此有一些疑问(如果最初启动一个组实例,它将读取所有分区;然后添加第二个实例,会发生什么情况。第二个实例是否会占用一半以上的分区,这意味着组实例实际上并不存在总是静态分配给同一组分区?) - 但我的主要问题是:
当两个参数都提供时,Camel 会做什么? 是否会根据提供的 ID 和消费者数量为每个实例分配一些唯一的组实例 ID(例如
groupInstanceID1
、groupInstanceID2
等)?或者Camel会使用相同的groupInstanceID启动多个消费者,从而失败吗?
消费者群体之间完全独立