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

Spring-Cloud-StreamKafka消费模式

陈项禹
2023-03-14

对于具有多个分区的主题-

1)单个SpringBoot实例是否使用多个线程来处理来自每个分区的每个消息(使用StreamListener注释的方法)?

2)是否可以为每个分区配置多个线程,或者我必须手动从监听器线程切换到工作池?

共有1个答案

濮阳振
2023-03-14

...consumer.concurrency控制线程数(默认值1)。

分区分布在线程之间。如果您有20个分区和4个线程;他们每个将得到5个分区。

您需要至少拥有与所有实例之间的聚合并发量一样多的分区。(如果您有2个应用程序实例和每个5个线程,则至少需要10个分区)。

 类似资料:
  • 我已经建立了一个生产者Spring云流应用程序和Kafka作为活页夹。以下是application.yml: 我有两个实例(同一个应用程序运行在一个jvm上)作为消费者。以下是application.yml: 我对Kafka群体的理解是,对于同一群体中的消费者来说,消息只会被消费一次。假设生产者应用程序产生消息A、B,而同一组中有两个消费者应用程序,则消息A将由消费者1读取,消息B、C将由消费者2

  • 在Spring-Cloud-Stream中是否有支持或计划支持avro和/或来自汇流平台的模式注册表?我发现spring-integration-kafka 1.3.0版中存在对avro的依赖,而spring-cloud-stream-binder-kafka的主分支(2.0)和spring-kafka没有任何avro依赖。

  • 我们正在使用spring cloude stream 2.0 现在在Spring Cloud stream 2.0中,有一种使用执行器管理绑定器生命周期的方法:绑定可视化和控制 是否可以从代码控制绑定器的生命周期,这意味着在目标服务器关闭的情况下,绑定器,当它启动时,?

  • 在我们的spring boot应用程序中,我们注意到Kafka消费者偶尔会在prod env中随机消费两次消息。我们在PCF中部署了6个实例和6个分区。我们发现在同一主题中收到两次具有相同偏移量和分区的消息,这会导致重复,对我们来说是业务关键。我们在非生产环境中没有注意到这一点,在非生产环境中很难复制。我们最近转向Kafka,但我们无法找到根本问题。 我们使用的是spring cloud stre

  • 上文我们创建了注册中心,以及服务的提供者microservice-provider-user,并成功地将服务提供者注册到了注册中心上。 要想消费microservice-provider-user的服务是很简单的,我们只需要使用RestTemplate即可,或者例如HttpClient之类的http工具也是可以的。但是在集群环境下,我们必然是每个服务部署多个实例,那幺服务消费者消费服务提供者时的负

  • 使用Spring-Cloud-Stream的kafka绑定器,如何配置并发消息消费者(在单个消费者jvm中)?如果我没有理解错的话,在使用kafka时并发使用消息需要分区,但是s-c-s文档指出,要使用分区,您需要通过partitionKeyExpression或PartitionKeyExtractorClass在生成器中指定分区选择。Kafka博士提到循环分区。 s-c-s文档根本没有提到sp