首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡夫卡连接consumer_group中的最大活动任务

卡夫卡连接consumer_group中的最大活动任务
EN

Stack Overflow用户
提问于 2021-05-11 09:01:53
回答 2查看 707关注 0票数 0

我有一个连接器,它使用两个主题。

一个主题有6个分区,第二个主题有2个分区(总共有8个分区)

当我将tasks.max设置在6下时,要使用的分区在任务之间很好地平衡(通过查看consumer_group)

但是,如果我在示例8中将tasks.max设置为高于6,那么在consumer_group中有两个没有主题属性的任务(所有8个任务都处于运行状态),因此有2个空闲任务

主题offset.storage.topic只有6个分区

连接器不可能拥有比主题offset.storage.topic的分区数更多的活动(不仅是正在运行)任务?

那么,值offset.storage.partitions与最大活动连接器任务相关吗?

合流医生说 ->

offset.storage.topic: 具有大量分区的主题(例如,25或50,就像Kafka的内置__consumer_offsets主题一样),以支持大型Kafka集群。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-18 19:27:08

在kafka-connect 2.7中

接收器连接器的最大活动任务数等于要使用的分区数最多的主题。

因为它使用的是RangeAssignor分区分配策略

(它与主题offset.storage.partitions的分区数无关)

活动任务是在接收器连接器的使用者组中分配分区的任务。

例子:

有两个主题,每个主题有10个分区

活动任务的最大数量为10 (如果我将task.max设置为12,消费者组中的2个任务没有要使用的分区)。

如果我向连接器conf添加具有15个分区的第三个主题,那么12个任务将接收要使用的分区,如果现在将task.max设置为17,那么在使用者组中只有15个任务处于活动状态。

我发现强制在使用者组的所有成员之间分配分区的唯一方法是设置

代码语言:javascript
运行
复制
"consumer.override.partition.assignment.strategy": "org.apache.kafka.clients.consumer.RoundRobinAssignor"
票数 0
EN

Stack Overflow用户

发布于 2021-07-18 11:44:29

tasks.max配置来自框架,并指定要为连接器创建的最大任务数。但是,可能会创建较少的任务。- https://docs.confluent.io/current/connect/managing/configuring.html

在这种情况下,框架决定它只需要#任务来处理负载,因此每个任务都处理相关的主题分区。从框架的角度来看,这是很好的,因为每个分区的顺序保证都没有被违反。

如果您了解更多关于加载模式的信息,并且希望为每个主题分区显式地拥有一个唯一的任务,您可以尝试将配置分解为单独的信任,每个主题都有一个相关分区数的tasks.max。

与最大活动连接器任务相关的offset.storage.partitions

-不,他们没有亲戚。你应该把它设为25 (默认)或更多.最好别碰它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67483645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档