【问题标题】:Apache Kafka Connect With SpringbootApache Kafka 与 Springboot 连接
【发布时间】:2019-05-27 05:10:58
【问题描述】:

我正在尝试查找 kafka 与 springboot 连接的示例。看起来kafka connect没有spring boot集成。有人能指出我正确的方向,以便能够监听 mysql db 上的变化吗?

【问题讨论】:

    标签: spring-boot apache-kafka apache-kafka-connect


    【解决方案1】:

    Kafka Connect 并不真正需要 Spring Boot,因为您无需为它编写任何代码,而且当以分布式模式运行时,它确实最有效,作为一个集群,而不是嵌入到其他(单实例)应用程序中。我想如果你确实想这样做,那么你可以复制the source code的相关部分,但这当然不是使用Spring Boot,你必须自己连接它

    框架本身包含一些已经编写好的核心 Java 依赖项(Debezium 或 Confluent JDBC 连接器,对于您的 mysql 示例),以及两个配置文件。一个用于 Kafka Connect 以了解引导服务器、序列化程序等,另一个用于实际的 MySQL 连接器。因此,如果您想使用 Kafka Connect,请自行运行它,然后只需在 Spring 应用中编写消费者即可。

    Kafka Connect 本身的替代方案是在 Spring 应用程序 (Spring Integration) 或 Spring Cloud Dataflow 中使用 Apache Camel,并与那些 Kafka“组件”(不使用 Connect API,AFAIK)进行交互

    另一个专门用于监听 MySQL 的选项是在您的代码中使用 Debezium Engine

    【讨论】:

    • 那么我们如何与Java应用程序集成。你能指出一些例子吗
    • 所以它类似于下载 docker 映像,然后更改配置并运行对吗?还需要在数据库上安装一个问题连接器以流式传输更改吗?还是只是配置更改?
    • @user331 如果你想这样做,我建议搜索“Debezium Embedded”。正如我所说,开箱即用的 Kafka Connect 并非完全设计为作为另一个应用程序的一部分运行
    • @Deadpool Docker 只是一个选项,不是必需的,但是是的,只是配置。并且依赖于数据库,比如 Mongo/MySql/Postgres 使用复制 oplog。例如,Couchbase 有自己的 CDC 协议。但是,它们通过网络运行,而不是在数据库服务器本身上运行
    • 我正在使用 postgres 数据库,所以它将使用复制 oplog,但我有一个问题,有些组织不允许访问日志文件,那么还有其他选择吗? @cricket_007
    猜你喜欢
    • 2020-02-05
    • 2019-03-08
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2019-01-17
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多