我启动了一个kafka-connect分布式工作集群,该集群使用主题connect-offset
进行偏移存储:
offset.storage.topic=connect-offset
由于为broker提供了默认策略"cleanup.policy=delete",因此在创建具有"cleanue.policy=compact"的主题时,我最终会得到该主题的"cleanup.policy=complex,delete"。导致kafka连接工作进程抛出异常的原因:
org.apache.kafka.commun.config.ConfigException:通过"offset.storage.Topic"属性提供的主题"slpe connect offset"必须具有"cleanup.policy=compact"以确保源连接器偏移的一致性和持久性,但发现主题当前具有"clenup.policy=confract,删除'。继续可能会导致最终丢失源连接器偏移,并在将来重新启动此连接群集时出现问题。更改Connect工作进程配置中的"offset.storage.topic"属性,以使用带有"cleanup.policy=compact"的主题。
问题:是否有任何kafka-connect worker配置允许吃这个异常来保持worker进程?尽管这是一种风险,但CCD_ 2在达到保留期或大小限制之前不会发生。
该验证在KAFKA-9216(PR(中引入,影响2.3.2、2.6.0、2.4.2和2.5.1版本:
当前的更改有助于防止用户使用启用了删除清理策略的主题运行Connect,该策略将删除所有连接器配置、源偏移和连接器&早于保留时间的任务状态。这意味着,例如,代理可能会删除长时间运行的连接器的配置,这将在随后重新平衡或重新启动Connect工作程序时导致重新启动问题。连接行为要求压缩其内部主题,并且在保留一段时间后不删除
因此,对Kafka Connect内部主题使用删除清理策略是非常不可取的:只需重新创建这些主题。
没有任何配置属性可以忽略此验证,但如果您愿意,您可以将Kafka Connect降级到没有它的版本。