Apache Kafka 的自定义连接器

Custom Connector for Apache Kafka

我正在为 Apache Kafka 编写自定义连接器以连接到 SQL 数据库以获取 CDC 数据。我想编写一个自定义连接器,这样我就可以使用一个连接器连接到多个数据库,因为所有市场连接器只为每个连接器提供一个数据库。

第一个问题:是否可以使用一个自定义连接器连接到多个数据库?另外,在那个自定义连接器中,我可以定义数据应该转到哪些主题吗?

第二个问题:我可以在 .NET 中编写自定义连接器吗,还是必须 Java?有没有我可以查看的示例,用于 .net 中的数据库的 CDC 自定义连接器?

没有 .NET 示例。 Kafka Connect API 仅 Java,并不特定于 Confluent。

来源在这里 - https://github.com/apache/kafka/tree/trunk/connect

此处依赖 - https://search.maven.org/artifact/org.apache.kafka/connect-api

looking to write a custom connector ... to connect to SQL database to get CDC data

如果您真的想要此功能,您可以扩展或贡献 Debezium。

connect to multiple databases using one custom connector

如果你指的是数据库服务器,那么不是真的,不是。每个连接器任务的 URL 必须是唯一的,并且没有 API 将任务编号映射到配置值。如果您指的是一台服务器和多个数据库模式,那么我也不认为在具有多个任务的单个连接器中正确地“分发”是不可能的(因此 Debezium 中的 database.names 配置目前仅支持一个名称).

explored debezium but it won't work for us because we have microservices architecture and we have more than 1000 databases for many clients and debezium creates one topic for each table which means it is going to be a massive architecture

Kafka 可以很好地处理数千个主题。例如,如果您 运行 Kubernetes 中的连接器进程,那么它们可以从那里集中部署、扩展和配置。

但是,我仍然担心您需要 所有 数据库来捕获 CDC 事件。

之前也有人建议使用 Maxwell