apache-kafka - 如何获取 Kafka Debezium MySQL 连接器的 database.server.name?

标签 apache-kafka apache-kafka-connect debezium

编辑问题:

尝试配置 debezium MySQL Kafka 连接器,以示例为例

https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-example-configuration

我有:

  • 主机名:“ec2-xxx.compute.amazonaws.com”
  • 数据库:mycooldb(里面有我所有的表)

然后我设置如下属性:

"database.hostname": "ec2-xxx.compute.amazonaws.com"
"database.include.list": "mycooldb"

debezium 有另一个名为“database.server.name”的属性。如何在 MySql 服务器中找到服务器名称值?

一个服务器可以有多个数据库,然后在 database.include.list 中我可以包含一个数据库列表。

database.hostname 是主机名或 ip。

我不确定 database.server.name 是什么以及如何从 MySQL 服务器获取值?。在这种情况下,如果我想在 database.include.list 中包含多个数据库,那么 atabase.server.name 的值是多少?

最佳答案

What is the difference between database.server.name and database.hostname

根据 docs :

  • database.hostname: IP address or host name of the MySQL database server
  • database.server.name: Logical name that identifies and provides a namespace for the particular MySQL database server/cluster in which Debezium is capturing changes. The logical name should be unique across all other connectors, since it is used as a prefix for all Kafka topic names that receive events emitted by this connector. Only alphanumeric characters, hyphens, dots and underscores must be used in the database server logical name.

所以 database.hostname 必须是可以找到数据库的主机/IP。 database.server.name 可以是 fredfoobarsalesanythingelse。它只是该数据库的逻辑名称,并在 Kafka 主题中使用(如上所述)。

如果没有 database.server.name,您可能会遇到潜在的问题,即使用两个不同的 Debezium 连接器从两个不同的数据库中提取一个名为 foo 的表并尝试存储它在名为 foo 的 Kafka 主题中。因此文档中的注释是 database.server.name “...provides a namespace


编辑:关于您的评论,我的回答仍然是准确的。文档 detail topic naming ,特别是在部分主题中使用了 MySQL 数据库名称以及 database.server.name。如果您连接到同一台 MySQL 主机(假设我们将其称为 database.server.name=fred),并从其上名为 sales 的两个数据库中提取数据>warehouse,每个都有一个名为 audit 的表,您将有两个结果 Kafka 主题:

  • fred.sales.audit
  • fred.warehouse.audit

关于apache-kafka - 如何获取 Kafka Debezium MySQL 连接器的 database.server.name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71450836/

相关文章:

apache-kafka - Kafka Jdbc Connect 时间戳+递增模式

mysql - Kafka debezium mysql基于连接器的主题: For ksql streams and tables,所有列值最终都是 'null'

java - 让所有 Kubernetes Pod 监听同一个 Kafka 主题

partitioning - Zookeeper是Kafka必须的吗?

java - Spring for Kafka 2.3 在运行时为特定监听器使用 KafkaMessageListenerContainer 设置偏移量

asp.net - 如何使用 Co Fluent 库在 Windows 上通过 Kerberos 身份验证连接到 Kafka 集群?

apache-kafka - kafka 连接器 HTTP/API 源

apache-kafka - Kafka Connect 能否保证 RetriableException 发生时的写入顺序?

apache-kafka-connect - Debezium,Kafka-connect : updates to postgres are not showing up as messages, 只有插入是

apache-kafka - 使用 Debezium 提取 key 的转换中不存在字段