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

Kafka Connect中的连接器和任务是什么关系?

郎宏逸
2023-03-14

我们已经在一个项目中使用 Kafka Connect 一段时间了,目前完全只使用 Confluent Kafka Connect JDBC 连接器。我正在努力理解“任务”在Kafka Connect中的作用,特别是这个连接器。我了解“连接器”;它们包含有关特定源/接收器以及它们连接的主题的一系列配置。我知道连接器和任务之间存在 1:Many 关系,以及任务用于并行化工作的一般原则。但是,我们如何理解连接器何时将/可能创建多个任务?

>

  • 在源连接器的情况下,我们使用JDBC连接器通过时间戳和/或主键来获取源数据,因此这在本质上似乎是连续的。事实上,我们所有的源连接器似乎都只有一个任务。什么会触发Kafka Connect创建多个连接器?目前,我们以分布式模式运行Kafka Connect,但只有一个工作人员;如果我们有多个工作人员,每个连接器可能会有多个任务,还是两者不相关?

    在sink连接器的例子中,我们用< code>tasks.max=1显式地配置了每个sink连接器,因此毫不奇怪,我们也只看到每个连接器有一个任务。如果我们删除了那个配置,大概我们可以/将会得到不止一个任务。这是否意味着我们输入主题上的消息可能会被乱序使用?在这种情况下,如何保证变更的数据一致性?

    此外,我们不时看到单个连接器和任务都将进入FAILED状态的情况(因为输入连接问题)。重新启动任务会将其从该状态中删除,并重新启动数据流,但连接器仍处于FAILED状态。怎么会这样——连接器的状态不只是其所有子任务的聚合吗?

  • 共有1个答案

    柳胜
    2023-03-14

    任务是一个执行实际数据来源或接收的线程。

    每个连接器的任务数量由连接器的实现决定。以MySQL的Debezium源连接器为例,由于一个MySQL实例一次只写入一个数据库日志文件,并且必须按顺序读取一个文件,因此一个连接器只生成一个任务。

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

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

     类似资料:
    • 我参考了以下链接来了解Kafka的HDFS连接https://docs.confluent.io/2.0.0/Connect/connect-hdfs/docs/index.html 我能够通过配置单元集成将数据从Kafka导出到HDFS。 现在我正尝试在Java程序的帮助下将avro记录写入Kafka 当我把Avro记录写到Kafka主题时,我在Connect中出现以下错误

    • 任务是项目管理中最小单位。任务是一个具体的工作,有明确的负责人和截止时间,比如需要在某个特定的时间段内完成某项工作。

    • 问题内容: 我正在学习如何推动使用gruntjs。我找到了服务器任务,但我不明白这一点。 我可以在不将源文件移动或放置在Web服务器根目录下的情况下,使用服务器任务映射串联/缩小的文件来测试我的应用程序(使用ribs.js)吗?例如没有Apache。 如果否,服务器任务的预期用途是什么? 问题答案: 该任务用于将路径设置为Web根目录来启动静态服务器。 示例:作为: 它的功能类似于Apache服务

    • 我在查询中有这个疑问 平等吗?。。。我什么时候可以使用? 提前感谢。

    • 我有两个实体帐户和头寸。POSITION表和ACCOUNT表有内容,但我认为至少应该有一行的POSITION_ACCOUNT表是空的。我可能做错了什么?以下是相关代码(我使用Eclipse Link 2.4.2: 就位: @许多私人名单账户; 在帐户: @ManyTo许多(mappdBy="帐户",抓取=FetchType. EAGER,级联=CascateType. PERSIST)@JoinT

    • 本文向大家介绍连接器API的作用是什么?相关面试题,主要包含被问及连接器API的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:一个允许运行和构建可重用的生产者或消费者的API,将Kafka主题连接到现有的应用程序或数据系统,我们称之为连接器API。 Apache Kafka对于新手的面试问题:21, 23, 25, 26, 27, 28, 29, 30 Apache Kafka对于有