如何在 Heroku 中将 Kafka 连接到 Postgres
Posted
技术标签:
【中文标题】如何在 Heroku 中将 Kafka 连接到 Postgres【英文标题】:How to Connect Kafka to Postgres in Heroku 【发布时间】:2021-05-06 16:48:22 【问题描述】:我有一些 Kafka 消费者和生产者通过我的 Heroku 集群上的 Kafka 实例运行。我正在寻找创建一个数据接收器连接器来将 Kafka 连接到 PosytgreSQL 以将数据从 Kafka 放到我的 heroku PostgreSQL 实例。很像HeroKu docs,但只有一种方式。
我不知道我需要采取哪些步骤来实现这一目标。
文档说要查看 Gitlab 或 Confluence 生态系统页面,但我在这些页面中找不到任何关于 Postgres 的提及。
查看Confluent Kafka Connectors library 似乎有来自 Debezium 的东西,但我没有运行 Confluent。
Heroku docs 中的图表提到了 JDBC 连接器?我找到了这个Postgres JDBC driver,我应该使用它吗?
如果需要的话,我很高兴创建一个消费者并在数据到来时手动更新 postgres,但我觉得 Kafka 到 Postgres 必须是一个足够通用的接口,应该有一些东西来管理这个?
我只是在寻找一些高水平的帮助或示例来帮助我走上正确的道路。
谢谢
【问题讨论】:
【参考方案1】:你快到了:)
请记住,Kafka Connect 是 Apache Kafka 的一部分,您可以获得各种连接器。一些(例如 Debezium)是来自 Red Hat 的社区项目,其他(例如 JDBC Sink)是来自 Confluent 的社区项目。
JDBC Sink connector 可让您将数据从 Kafka 流式传输到具有 JDBC 驱动程序(例如 Postgres)的数据库。
这是一个示例配置:
"connector.class" : "io.confluent.connect.jdbc.JdbcSinkConnector",
"key.converter" : "org.apache.kafka.connect.storage.StringConverter",
"connection.url" : "jdbc:postgresql://postgres:5432/",
"connection.user" : "postgres",
"connection.password": "postgres",
"auto.create" : true,
"auto.evolve" : true,
"insert.mode" : "upsert",
"pk.mode" : "record_key",
"pk.fields" : "MESSAGE_KEY"
这里有一个walkthrough 和几个你可能会觉得有用的视频:
Kafka Connect in Action: JDBC Sink ksqlDB and the Kafka Connect JDBC Sink我真的需要安装什么吗
Kafka Connect 附带 Apache Kafka。你需要install the JDBC connector。
我真的需要写任何代码吗
不,只是配置,和我上面引用的差不多
我可以直接调用 Kafka 自带的 Connect 端点吗?
一旦你已经installed the connector 运行 Kafka Connect(Apache Kafka 附带的二进制文件),然后使用 REST endpoint to create the connector using the configuration
【讨论】:
嗨,非常感谢罗宾。试图弄清楚我在这里免费得到的东西是很棘手的。我是否真的需要安装任何东西/编写任何代码,或者我可以只调用 Kafka 附带的 Connect 端点,并使用上面的设置配置?来源:Running Connectors on Heroku和Dzone 我已经修改了答案以上是关于如何在 Heroku 中将 Kafka 连接到 Postgres的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mongoose 上将 MongoDB 连接到 Heroku?
如何使用 Fixie Socks(Heroku 插件)通过 mongoose 连接到 mongodb