我安装了 Kafka 2.4.0,当我运行 kafka-topics.sh 命令时,我看到了奇怪的行为。
我可以毫无问题地启动zookeeper和kafka,当我运行这个时
kafka-topics.sh --bootstrap-server 127.0.0.1:2181 --version
我明白了:
2.4.0 (Commit:77a89fcf8d7fa018)
到目前为止,一切都很好。但如果我尝试列出所有主题:
kafka-topics.sh --bootstrap-server 127.0.0.1:2181 --list
命令挂起,我看到 Zookeeper 控制台重复显示此消息:
WARN Exception causing close of session 0x0: Unreasonable length = 308375649
起初我认为这可能与我也安装的 Confluence 5.3.2 发生冲突,但我删除了它。我卸载了Kafka,然后重新安装。没有喜悦。
我正在使用 Kafka Connect Sink 配置从主题获取数据并将其保存到 Oracle 数据库。工作起来就像冠军一样,我正在对通过 Avro 模式作为 long 传入的时间戳列进行转换,然后转换为 Oracle Timestamp 列。
"transforms": "TimestampConverter",
"transforms.TimestampConverter.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
"transforms.TimestampConverter.format": "mm/dd/yyyy HH:mm:ss",
"transforms.TimestampConverter.target.type": "Timestamp",
"transforms.TimestampConverter.field": "created_ts"
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何在多个时间戳上执行此操作。也就是说,除了created_ts之外,我还有一个需要改造的updated_ts。
我试过这个:
"transforms.TimestampConverter.field": "created_ts, updated_ts"
Run Code Online (Sandbox Code Playgroud)
不起作用,我也无法为其他字段重复整个块,因为 Connect 只允许 1 个同名条目。
最后,我尝试了这个:
"transforms.TimestampConverter.field.1": "created_ts",
"transforms.TimestampConverter.field.2": "updated_ts"
Run Code Online (Sandbox Code Playgroud) 我有一个正在使用的 jdbc 源连接器,并且我一直在使用 Postman 来测试和设置它。db 连接的密码是明文,只要我是唯一看到它的人就可以了。
"config": {
"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"connection.url": "jdbc:db2://db2server.mycompany.com:4461/myDB",
"connection.user: "dbUser",
"connection.password": "DBPASSinClearText!",
"dialect.name": "Db2DatabaseDialect",
"mode": "timestamp",
"query": "select fname, lname, custId, custRegion, lastUpdate from CustomerMaster",
"timestamp.column.name": "lastUpdate",
"table.types": "TABLE",
"topic.prefix": "master.customer"
}
}
Run Code Online (Sandbox Code Playgroud)
在生产中,部署团队是设置配置的人。有没有办法对此进行加密,这样我就不必与该团队共享明文密码?