首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡夫卡连接中的连接器和任务之间的关系是什么?

问卡夫卡连接中的连接器和任务之间的关系是什么?
EN

Stack Overflow用户
提问于 2021-04-26 10:36:40
回答 1查看 1.9K关注 0票数 6

我们已经在一个项目上使用了一段时间的Kafka,目前只使用凝聚式Kafka连接JDBC连接器。我很难理解“任务”在Kafka中的作用,特别是这个连接器。我理解“连接器”;它们包含一组关于特定源/接收器的配置,以及它们连接到的主题。我理解连接器和任务之间存在着1:Many关系,以及任务用于并行化工作的一般原则。但是,我们如何理解连接器何时会/可能创建多个任务?

  • 在源连接器的情况下,我们使用JDBC连接器通过时间戳和/或主键来获取源数据,因此这在本质上似乎是连续的。事实上,我们所有的源连接器似乎只有一个任务。什么会触发卡夫卡连接来创建多个连接器?目前,我们正在分布式模式中运行Kafka,但是只有一个工作人员;如果我们有多个工作人员,那么每个连接器可以得到多个任务,还是这两个任务没有关系?
  • 在接收器连接器的情况下,我们使用tasks.max=1显式地配置每个接收器连接器,因此毫不奇怪,我们也只看到了每个连接器的一个任务。如果我们删除了该配置,那么我们可以/将得到多个任务。这是否意味着我们输入主题上的消息可能会被按顺序消耗?在这种情况下,如何确保更改的数据一致性?

此外,我们还不时地看到单个连接器和任务都将进入失败状态(因为输入连接问题)。重新启动任务将从此状态中移除它,并重新启动数据流,但连接器仍处于失败状态。这怎么可能--难道连接器的状态不是所有子任务的总和吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-08 11:20:20

任务是执行数据的实际来源或下沉的线程。

每个连接器的任务数由连接器的实现决定。以德贝兹源连接器到MySQL为例,因为一个MySQL实例一次正好写入一个binlog文件,并且必须按顺序读取一个文件,因此一个连接器只生成一个任务。

对于接收器连接器,任务的数量应该等于主题的分区数。

工人之间的任务分配是由任务再平衡决定的,这是一个与卡夫卡消费者群体再平衡非常相似的过程。

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

https://stackoverflow.com/questions/67265075

复制
相关文章

相似问题

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