【问题标题】:Specify Kafka Connect connector plugin version指定 Kafka Connect 连接器插件版本
【发布时间】:2021-02-24 16:23:46
【问题描述】:

Kafka 如何处理CLASSPATH 中提供的同一连接器插件的多个版本?例如,假设我将mongo-kafka-1.0.0-all.jarmongo-kafka-1.1.0-all.jar 都放入各自的目录中,以便根据需要使用这两个版本。不幸的是,文档并没有给出指定connector.class 版本的方法,我只能假设这种处理方式就像classloading 通常以Java 方式处理一样。

【问题讨论】:

  • 是的,jar 是通过 Classloader 加载的。您需要两个罐子是否有特定原因?
  • @OneCricketeer 这两个罐子可能是个坏例子,因为它们无论如何都应该向后兼容。但是,如果两个开发团队在同一个集群上工作,并且需要同一连接器插件的不同(不兼容)版本来将 Kafka 集群连接到不同的系统,就会出现这种要求。
  • 我的建议是使用配置管理工具来防止这种情况发生。无论如何,集群都需要重新启动以获取新的 jar,因此这两个团队将因此在任何升级期间停止彼此的进程。因此,您可以形成一个集中的基础架构流程来负责部署新的/非冲突连接器,或者为每个团队提供 Connect 集群
  • 但是如果两个 jars 都/应该在初始部署中可用,这没有帮助。我正在考虑将单独的集群作为最后的手段,显然这是这个特定用例的唯一解决方案。谢谢!

标签: java apache-kafka-connect


【解决方案1】:

如果您拥有共享相同连接器类的相同连接器插件(例如io.confluent.connect.jdbc.JdbcSinkConnector),并且您想要相同连接器 JAR 的不同版本,则需要运行多个 Kafka Connect 工作器。

如果您有不同的连接器使用不同的依赖 JAR,那么这将由 Kafka Connect 的类路径隔离和 plugin.path 设置来处理。

【讨论】:

  • 谢谢,这正是我正在寻找的明确答案!
猜你喜欢
  • 2021-01-13
  • 2021-12-06
  • 2019-06-17
  • 2020-01-07
  • 2020-08-05
  • 2017-10-02
  • 2019-04-24
  • 2020-08-26
  • 2020-01-15
相关资源
最近更新 更多