Apache kafka Kafka source connect作业使用更新的配置重新启动,但任务仍使用旧配置

Apache kafka Kafka source connect作业使用更新的配置重新启动,但任务仍使用旧配置,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,我有一份卡夫卡连接源代码的工作,并注意到一个非常奇怪的行为。使用更新的配置重新启动源作业后。该任务仍在使用旧配置运行一次拉取,该任务获得配置更新并使用新配置重新启动。有关示例,请参见下面的日志。有没有人有过类似的经历或知道如何解决这个问题 [2020-11-11 06:58:29,174] INFO [baw_demo-cmdb_ci_database-source|worker] RestSourceConnectorConfig values: batch.enable = tru

我有一份卡夫卡连接源代码的工作,并注意到一个非常奇怪的行为。使用更新的配置重新启动源作业后。该任务仍在使用旧配置运行一次拉取,该任务获得配置更新并使用新配置重新启动。有关示例,请参见下面的日志。有没有人有过类似的经历或知道如何解决这个问题

[2020-11-11 06:58:29,174] INFO [baw_demo-cmdb_ci_database-source|worker] RestSourceConnectorConfig values: 
    batch.enable = true
    batch.subject.area = baw_demo
    batch.table.id = cmdb_ci_database
    batch.uow = 20170304000000  **
    batch.uow.end = 20170304010000  **
...
[2020-11-11 06:58:29,188] INFO [baw_demo-cmdb_ci_database-source|task-0] RestSourceConnectorConfig values: 
    batch.enable = true
    batch.subject.area = baw_demo
    batch.table.id = cmdb_ci_database
    batch.uow = 20170303040000  **
    batch.uow.end = 20170303050000 **
...
[2020-11-11 06:58:29,667] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] Tasks [baw_demo-cmdb_ci_database-source-0] configs updated (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1418)
[2020-11-11 06:58:30,169] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] Handling task config update by restarting tasks [baw_demo-cmdb_ci_database-source-0] (org.apache.kafka.connect.runtime.distributed.DistributedHerder:581)
[2020-11-11 06:58:30,168] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1132)
[2020-11-11 06:58:30,169] INFO [baw_demo-cmdb_ci_database-source|task-0] Stopping task baw_demo-cmdb_ci_database-source-0 (org.apache.kafka.connect.runtime.Worker:704)
[2020-11-11 06:58:31,074] INFO [baw_demo-cmdb_ci_database-source|task-0] [Producer clientId=connector-producer-baw_demo-cmdb_ci_database-source-0] Closing the Kafka producer with timeoutMillis = 30000 ms. (org.apache.kafka.clients.producer.KafkaProducer:1182)
[2020-11-11 06:58:31,076] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] Rebalance started (org.apache.kafka.connect.runtime.distributed.WorkerCoordinator:222)
[2020-11-11 06:58:31,076] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] (Re-)joining group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:552)
[2020-11-11 06:58:31,081] INFO [Worker clientId=connect-1, groupId=kafka-connect-framework-test] Starting connectors and tasks using config offset 604 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1111)
...
[2020-11-11 06:58:31,090] INFO [baw_demo-cmdb_ci_database-source|task-0] RestSourceConnectorConfig values: 
    batch.enable = true
    batch.subject.area = baw_demo
    batch.table.id = cmdb_ci_database
    batch.uow = 20170304000000 **
    batch.uow.end = 20170304010000 **


删除Kafka Connect连接器时,其状态将保留在用于存储其相关信息的内部主题上。如果使用相同的名称创建新连接器,它将从连接器的上一个实例到达的点继续处理


因此,使用新的连接器名称创建新的作业实例,它应该可以正常工作。

您使用的是分布式模式还是独立模式?您是如何更改配置的?我们正在分布式模式下运行。我们采取的步骤是:删除作业->更新作业配置json文件->使用更新的json启动作业。还有一个上下文,上一次运行没有提交任何记录。我正在阅读Kafkanconfigbackstore.java中的注释,发现下面的语句--“我们必须缓冲连接器任务的配置更新,并且只有在读取提交消息后才自动应用它们。”。但我的假设是,如果作业被删除,任务配置也应该被删除。重新运行作业时,应使用更新的配置(而不是旧配置)刷新新任务。不知道为什么不是这样。谢谢罗宾的解释。但为什么会这样呢?重命名连接器可能适用于源,但接收器将与使用者偏移量有关。您正在运行的不是源连接器吗?对于接收器连接器,您可以更新现有连接器的配置,或创建一个新连接器,具体取决于您希望了解的偏移行为。但我仍然不明白为什么工作级别上的配置更新不会影响新开始的任务。删除作业不应关闭所有任务?