Apache kafka Kafka consumer跨多个节点的水平缩放

Apache kafka Kafka consumer跨多个节点的水平缩放,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我正在为db中的主题外部化kafka消费者元数据,包括消费者组和组中消费者的数量 消费者信息表已关闭 主题名称, 消费者组名称, 组中的消费者数量 消费者类名 在应用服务器启动时,我正在读取表并根据表中设置的数字创建使用者(线程)。如果使用者组计数设置为3,我将创建3个使用者线程。这是基于给定主题的分区数 现在,如果我需要横向扩展,我如何将属于同一组的消费者分布在多个应用服务器节点上。没有多次阅读同一信息 将在appserver启动时调用的consumer初始化代码从db for consume

我正在为db中的主题外部化kafka消费者元数据,包括消费者组和组中消费者的数量

消费者信息表已关闭

主题名称, 消费者组名称, 组中的消费者数量 消费者类名

在应用服务器启动时,我正在读取表并根据表中设置的数字创建使用者(线程)。如果使用者组计数设置为3,我将创建3个使用者线程。这是基于给定主题的分区数

现在,如果我需要横向扩展,我如何将属于同一组的消费者分布在多个应用服务器节点上。没有多次阅读同一信息

将在appserver启动时调用的consumer初始化代码从db for consumer读取元数据,并在同一个app server实例上创建所有consumer线程,即使我添加了更多的app server实例,它们都是冗余的,因为启动的第一台服务器产生了与分区数相等的已定义使用者线程。在其他实例上创建的任何其他使用者都将处于空闲状态

你能提出更好的方法来横向扩展消费者吗

消费者群体和群体中的消费者数量

临时运行
kafka消费者组--descripe
将比外部数据库查询提供更多的最新信息,特别是考虑到消费者可以重新平衡,并随时脱离该组

如何将属于同一组的消费者分布到多个app server节点上。没有多次阅读同一信息

这就是Kafka消费群体开箱即用的运作方式,假设您没有在代码中手动分配分区

在消费、确认和提交组内的偏移量后,不可能多次读取邮件


当您已经可以尝试在
kafka消费群体
命令周围公开API时,我认为不需要外部数据库


或者您也可以使用Cloudera的Stream Messaging Manager,它也显示了大量信息

我们的应用程序是java的。该表用于在服务器启动时实例化使用者线程,以后不再使用。我们不使用表来查询消费群体的状态。简单地
KafkaConsumer.subscribe
有什么问题?我在下面的链接中简化了我的要求。我们正在使用kafkaconsumer.subscribe。你可以在这里编辑你的帖子,而不是制作新帖子