【问题标题】:Will a Kafka JDBC source connector resolve /etc/hosts?Kafka JDBC 源连接器会解析 /etc/hosts 吗?
【发布时间】:2021-10-26 14:55:42
【问题描述】:

在为源连接器提供 connection.url 时,我将 IP 地址作为 JDBC 连接字符串的一部分传递。但是,这个 IP 并不是一直都是静态的,因为源系统很快就会被迁移。

出现两个问题:

  • 连接器是否支持 DNS 名称,因此我们可以在连接字符串中远离 IP?
  • 如果我们将它放在映射到另一个主机名的 /etc/hosts 中并相应地更改连接字符串中的主机,JDBC 连接器是否解析 IP?这个建议是在一些讨论中提出的,但我对这个解决方案有些怀疑。

【问题讨论】:

  • 是的,它应该支持,因为 Java InetAddress 做 DNS 解析。它不适合你吗?如果没有,您可以发布相关错误。

标签: apache-kafka apache-kafka-connect


【解决方案1】:

Java 将 DNS 解析传递给操作系统,因此框架无法控制它。

不过,/etc/hosts 文件也是静态的,因此您可能需要查看其他服务发现选项,例如 HashiCorp Consul。

【讨论】:

  • 是的,它是静态的,但我们可以在必要时轻松更新文件作为部署管道的一部分,以保持连接器及其偏移量。我知道也可以使用 Connect API 即时更新连接器(我们也可以在管道中执行此操作),但使用简单的文件写入比 GET 连接器、修改 JSON 和 PUT 连接器更安全在生产环境中,尤其是在自动化时。
  • 请记住,JVM 有一个 DNS 缓存,因此修改主机文件可能无法(立即)工作
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2019-09-24
  • 2019-11-17
  • 2017-03-14
  • 2015-07-10
  • 2021-05-07
相关资源
最近更新 更多