需要分布式模式的 jdbc Kafka 连接配置设置作为 docker 容器的参考文档或代码

Posted

技术标签:

【中文标题】需要分布式模式的 jdbc Kafka 连接配置设置作为 docker 容器的参考文档或代码【英文标题】:Need reference document or code for jdbc Kafka connect configuration setup for distributed mode as docker container 【发布时间】:2021-07-23 04:29:03 【问题描述】:

我需要设计和配置 Kafka jdbc 连接项目,其中 source 和 sink 都是 postgres db,我使用的是 apache Kafka 2.8。

我已经为单机模式准备了POC,但我需要为分布式模式设计它,数据量将有几百万条记录。

您能否分享有关分布式模式设置以及参数调整和最佳实践的任何参考?

我已经浏览了几个文档,但没有获得仅针对带有 jdbc 连接器的 apache Kafka 的准确文档。

另外请告诉我如何使这个解决方案码头化?

谢谢,

苏文杜

【问题讨论】:

【参考方案1】:

分布式模式设置参考

这在 Kafka 文档中。运行 connect-distributed.sh 及其配置文件。

参数调优和最佳实践?

配置具有合理的默认值,但欢迎您检查文件是否有任何更改。只有其他的东西是堆设置,但 2G 是默认 Xmx,可以使用 KAFKA_HEAP_OPTS env var 进行设置

这会启动一个 HTTP 服务器,然后将 JSON POST 到它,它与独立的 jdbc 工作文件具有相同的键值

仅适用于带有 jdbc 连接器的 apache Kafka 的精确文档

有官方配置页面和一些关于它的博客(由 Confluent 提供)

我怎样才能使这个解决方案码头化?

Confluent Docker 镜像最适合此操作,尽管您可能必须将 JDBC 连接器confluent-hub install 转换为您自己的镜像

不过,我推荐 Debezium 作为来源

【讨论】:

谢谢@onecricketeer,你能告诉我我应该如何附加/配置接收器“reporter”以弹性报告吗?会是另一个连接器工作者吗? 您在寻找这样的东西吗? confluent.io/blog/kafka-elasticsearch-connector-tutorial... 或 confluent.io/blog/… 感谢@onecricketeer 的回复,实际上我想在接收器操作后配置“reporter.result.topic.name”,然后我想保存“reporter.result.topic.”主题中的数据。名称”到 Elastic。我已经使用 docker-compose 使 kafka-connect 运行。所以如果我可以配置“记者”部分,我需要教程和概念。 我不明白你的意思。 reporter.result.topic.name 不是 Kafka Connect 属性名称,也没有名为“reporter”的概念/术语。除此之外,要求教程是题外话 - help center,但上面的链接向您展示了如何将任何主题下沉到 Elastic 实际上我从这个链接中指的是“连接记者”,但在我的 kafka-connect docker sink 操作中仍然没有得到如何配置它。 “docs.confluent.io/home/connect/…”。我需要为成功和失败操作进行配置。

以上是关于需要分布式模式的 jdbc Kafka 连接配置设置作为 docker 容器的参考文档或代码的主要内容,如果未能解决你的问题,请参考以下文章

每个模式的 JDBC Confluent kafka 连接器和主题

Kafka JDBC 源连接器插入或更新

在 Kafka Connect 分布式模式下为多个主题配置连接器

kafka jdbc sink连接器抛出org.apache.kafka.connect.errors.DataException(结构模式的字段名称未正确指定)插入PG表

kafka-connect JDBC PostgreSQL Sink Connector 显式定义 PostgrSQL 模式(命名空间)

为啥搭建Kafka需要zookeeper