当前位置: 首页 > 知识库问答 >
问题:

具有相同groupId的多个Spark Kafka消费者

郭单鹗
2023-03-14

我试图有多个消费者的Kafka主题的多个分区与相同的groupId,这将帮助我扩大消费的消息

根据Kafka的文件,它说:

java.lang.IllegalStateException: Previously tracked partitions [cpq.cluster-1] been revoked by Kafka because of consumer rebalance. This is mostly due to another stream with same group id joined, please check if there're different streaming application misconfigure to use same group id. Fundamentally different stream should use different group id
at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.latestOffsets(DirectKafkaInputDStream.scala:200)
at org.apache.spark.streaming.kafka010.DirectKafkaInputDStream.compute(DirectKafkaInputDStream.scala:228)

如何让多个消费者拥有相同的消费者groupId,以实现负载平衡?

共有1个答案

皇甫夕
2023-03-14

在这里,您不需要执行多个spark应用程序来从多个分区消费,而是单个spark应用程序将在内部处理这一问题。Spark流在Kafka分区和Spark分区之间使用1:1并行。如果执行多个spark应用程序,它会给出此错误。请参考这个问题更多的细节:2个火花流作业与相同的消费者组id

 类似资料:
  • 我是Kafka的初学者。我知道具有相同组id的多个消费者不能在一个主题中使用来自同一个分区的消息。我想知道如果来自一个消费组的多个Kafka消费者从一个分区读取相同的消息会发生什么,为什么这是一件坏事。 。

  • 我对Kafka是陌生的。我用spring boot创建了一个kafka消费者(spring-kafka dependency)。在我的应用程序中,我使用了consumerFactory和producerfactory beans进行配置。所以在我的应用程序中,我创建了如下的kafka消费者。 我的配置如下 所以我想并行消费,因为我可能会收到更多的消息。关于使用并行主题,我发现我需要为一个主题创建多

  • 我使用的是maven版本3.5.3,在构建项目时,我在WEB-INF(V3.1和V3.4)中获得了两个版本的apache commons-lang3,即使我在父pom.xml的“依赖关系管理”中明确指定了V3.4。 两者都具有相同的groupId和ArtifacTID。 我很困惑。这是Maven的预期行为吗?这种情况是在什么情况下发生的?我的印象是,如果依赖项具有相同的groupId和Artifa

  • 有以下消费者代码: 然后我用脚本生成消息: 问题是,当我将消费者作为两个不同的进程启动时,我会在每个进程中收到新消息。但是,我希望它只发送给一个消费者,而不是广播。 在Kafka的文献中(https://kafka.apache.org/documentation.html)其中写道: 如果所有使用者实例都具有相同的使用者组,则其工作原理就像在使用者之间平衡负载的传统队列一样。 我发现这些消费者的

  • 我正在尝试对消费者群体进行实验 这是我的代码片段 } 当我同时运行两个spark流媒体作业时,它会出错 线程“main”java中出现异常。lang.IllegalStateException:当前没有分配给组织上的分区venkat4-1。阿帕奇。Kafka。客户。消费者内部。订阅状态。组织上的assignedState(SubscriptionState.java:251)。阿帕奇。Kafka。

  • 我正在使用spring kafka来消费来自kafka的消息。消费者监听器如下。 应用程序的单个实例,并发数为6。 该主题有6个分区。 从上面的日志中可以清楚地看到,两个用户在完全相同的时间收到了来自分区和偏移量的相同消息。 每个线程继续处理消息。最后,其中一个消费者失败了,错误如下 我知道上面的错误会在有负载或消息处理需要时间时出现。在这种情况下,处理不到一秒钟,kafka主题中的消息不到10条