【问题标题】:How to access remote database in Apache Kafka?如何访问 Apache Kafka 中的远程数据库?
【发布时间】:2019-02-07 22:29:51
【问题描述】:

我是卡夫卡的初学者。在这里,我正在尝试在 kafka 中构建实时数据管道。我有位于远程的数据库。我真的不明白如何访问数据库和数据库像实时一样不断更新。我阅读了有关 debezium [https://debezium.io/docs/tutorial/] 的信息,但在整个教程中,他们没有展示任何从实时远程数据库中提取数据的示例。我有 MySQL 数据库。

【问题讨论】:

  • 在教程中,“监控 MySQL 数据库”一章 (debezium.io/docs/tutorial/#monitor-mysql) 描述了它连接到 MySQL 的方式。您可以在插件配置中配置数据库的地址和凭据以及要镜像的表。创建连接器后,它将自动从数据库中提取数据并将其推送到 Kafka。
  • 这里的“远程”不是很清楚。确保 Debezium 可以连接到任何其他主机上的 MySQL 数据库,即 Kafka Connect,并且 Debezium 不必在同一主机上运行。作为 cricket_007,将连接器靠近数据库当然是有意义的,以减少延迟(因为您将常规应用程序托管在靠近数据库的位置)。

标签: mysql apache-kafka database-connection apache-kafka-connect debezium


【解决方案1】:

理想情况下,Debezium 应该尽可能靠近数据库服务器运行

但是如果你看教程,如果指定了一个远程 docker 容器,你可以将主机名替换为与你的环境匹配的任何内容

"connector.class":  "io.debezium.connector.mysql.MySqlConnector", 
"tasks.max": "1", 
"database.hostname": "... Your server here... ", 
"database.port": "3306",

另一个选项是 Kafka Connect JDBC 连接器,您可以查看 Confluent 的几篇关于如何配置它们的博客文章

【讨论】:

  • 嘿,请原谅我在这里插话有点晚 - 那么是否可以在与数据库相同的主机上运行 debezium 并将 CDC 信息发送到远程 kafka 集群?
  • 这是可能的,当然。请注意您将添加到该服务器的负载。
猜你喜欢
  • 2019-02-02
  • 2021-08-10
  • 1970-01-01
  • 2021-01-08
  • 2012-11-09
  • 1970-01-01
  • 2022-08-15
  • 2018-04-02
  • 2018-02-14
相关资源
最近更新 更多