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

Flink,使用多个Kafka源码时,如何正确设置并行度?

公羊奇
2023-03-14

我仍然不能清楚地理解并行性,假设我们有一个有足够插槽的flink集群。在我们的flink工作中,我们使用来自3个不同kafka集群的3个kafka主题,每个主题有10个分区。

共有1个答案

孟昊空
2023-03-14

Kafka消费群体

每个Kafka使用者都属于一个使用者组,也就是说,可以把它看作是一群使用者的逻辑容器/命名空间。使用者组可以接收来自一个或多个主题的消息。使用者组中的实例可以从每个主题中的零个、一个或多个分区接收消息(取决于分区和使用者实例的数量)

Kafka分区是如何分配给Flink工人的?

这种情况是理想的,因为每个使用者负责一个分区。如果您的消息在分区之间是平衡的,那么工作将均匀地分散在Flink操作符之间

2.kafka分块

当Flink任务多于Kafka分区时,一些Flink使用者将只是空闲,而不读取任何数据:

在您的例子中,您可以使用Flink Kafka connector创建Kafka消费者组,并为其分配一个或多个主题(例如使用Regex)。因此,如果Kafka有三个主题,每个主题包括10个分区,并为Flink Job Manager分配30个插槽(核心),您可以实现理想情况,这意味着每个消费者(Flink插槽)将使用一个Kafka分区。

折射率:1,2,3

 类似资料:
  • 问题内容: 我有一个关于mysql时区的怪异问题。 在我的网站配置文件中,我这一行设置了时区: 有趣的是,如果我在此之后添加另一行,例如: 执行该代码后,时间将正确显示。 但是,在其他一些查询中,我在表中插入行,这些表的列名为date,默认为CURRENT_TIMESTAMP。 这样插入行: (“会话”表的列默认为CURRENT_TIMESTAMP) 但是插入到数据库中的值仍指向服务器的时区:((

  • 我有一个Spring Boot应用程序,它连接到两个独立的数据库。虽然为了自定义Tomcat JDBC连接池设置,我必须手动配置它(因为通过定义多个数据源,引导自动配置将被忽略,并且Spring Boot不再从application.properties读取特定于Tomcat的属性),但所有操作都很正常(我遵循了文档和教程中的步骤)。 由于Spring内部的多层抽象,我很难对此进行调试。我有Ecl

  • 问题内容: 在这里,我需要同时执行,并在同一时间。 当我尝试在其上放置一个并行块时,由于在官方站点中这样提到,因此它引发了错误。 } 问题答案: 您不必将每个调用都放在阶段内的并行作业中,因此可以这样进行:

  • 我想在Azure函数v4(.net 6)中使用Serilog(日志应发送到Datadog)。为此,我安装了以下nuget软件包: 以下是启动中的配置。cs类: 基本上日志记录工作正常,但所有日志语句都写入两次(与Datadog和控制台相差几毫秒)。 显然,我在配置上做了一些根本的错误。我不使用appsettings.json,Serilog的配置只在代码中进行。我搜索了整个互联网,几乎阅读了关于S

  • 我正在编写一个基于Java的Kafka消费者应用程序。我正在为我的应用程序使用kafka-clients、Spring Kafka和Spring boot。虽然Spring boot让我可以轻松地编写Kafka消费者(无需真正编写ConcurrentKafkaListenerContainerFactory、ConsumerFactory等),但我希望能够为这些消费者定义/定制一些属性。然而,我无

  • 我还向b_spring.xml声明了另一个entityManagetFactory、事务管理器和dataSource。 误差 bean初始化失败;嵌套异常是org.springframework.beans.factory.nosuchbeanDefinitionException:没有定义[javax.persistence.entityManagerFactory]类型的唯一bean:预期的单