【问题标题】:How to externalize Landoop Kafka connector common properties如何外部化 Landoop Kafka 连接器常用属性
【发布时间】:2019-05-15 04:00:41
【问题描述】:

我正在使用 Landoop Kafka docker 映像。我正在使用它的 UI 创建 jdbc 源和 jdbc 接收器连接器,或者我也可以使用 Kafka Rest Api 创建连接器。我有多个使用相同连接 url、用户名、密码的 jdbc 源连接器。每当更改源数据库凭据时,目前我必须单独更改所有连接器。有没有办法可以只将这些属性外部化,并让每个连接器都有其特定的属性,如主题、查询等。

【问题讨论】:

    标签: apache-kafka apache-kafka-connect


    【解决方案1】:

    在 Kafka 2.0 中添加,您至少可以将秘密外部化。参考KIP-297

    我自己还没有尝试过,它可能仅适用于 ConfigDef.Type.PASSWORD 配置,而不仅仅是一般配置...

    从 KIP 中提取

    变量替换的模式采用${provider:[path:]key} 的形式,在替换过程中只遵循一级间接。

    变量中的路径是可选的。

    这意味着如果您有以下情况:

    foo=${file:bar}
    bar=${file:baz}
    

    并且您的文件包含

    bar=hello
    baz=world
    

    那么结果就是

    foo=hello
    bar=world
    

    因此,在 Docker 中,您可以批量挂载配置文件,然后在连接器配置负载中引用它

    【讨论】:

    • 所以,假设我创建了 source-database-config.txt,sink-database-config.txt 分别具有源连接器和接收器连接器的公共属性,我可以在连接器配置中使用 { "name ": "test-jdbcSourceConnector", "config": { "connector.class": ${source-database-config:class}, "connection.password"=${source-database-config:password} "connection.user "=${source-database-config:username}, "connection.url": ${source-database-config:url}}
    • 好吧,file: 是默认的“提供者”,因此必须逐字逐句地出现在每个字段中。因此,它宁愿看起来像${file:/source-database-config.txt:connector_class},它是提供者,文件的路径,然后是文件中提到的关键属性
    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多