mysql - Kafka生产者与Kafka连接读取MySQL数据源

标签 mysql apache-kafka apache-storm apache-kafka-connect

我创建了一个 kafka 生产者,它从 MySQL 数据库读取网站点击数据流,并且运行良好。我发现我也可以使用 kafka connect 或 debezium 将 kafka 连接到 MySQL 数据源。我的目标是使用 kafka 摄取数据并将其发送到 Storm 进行消费和分析。看起来这两种方式都可以实现我的目标,但是使用 kafka Producer 可能需要我构建一个不断读取数据源的 kafka 服务。

这两种方法中哪一种对我的数据管道更有效?

最佳答案

我建议不要重新发明轮子并使用 Debezium(免责声明:我是其项目负责人)。

它的功能丰富(支持的数据类型、配置选项、可以进行初始快照等)并且在生产中经过了良好的测试。要记住的另一个关键方面是 Debezium 基于读取数据库日志而不是轮询(您可能在生产者中执行相同的操作,从问题中不清楚)。与轮询相比,这提供了许多优点:

  • 与低频轮询一样没有延迟,与高频轮询一样没有 CPU 负载
  • 可以捕获所有更改,而不会遗漏两次民意调查之间的一些更改
  • 可以捕获 DELETE
  • 对架构没有影响(不需要列来识别更改的行)

关于mysql - Kafka生产者与Kafka连接读取MySQL数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51267091/

相关文章:

mysql - 如何使用 Valentina Studio 制作主键?

php - 学说 DQL : DQL Join between 4 entities

java - 使用 Java 创建 kafka 主题不起作用

java - Kafka 日志中缺少偏移量 - 简单消费者无法继续

java - 集群模式下的 Apache Storm

PHP 提交后不在下拉列表中显示更新的值

php - 如何将包含多个单词的字符串作为一个返回

java - 我已经构建了一个 kafka 消费者,它从具有指定 groupId 的主题进行消费。如果我将 groupID 更改为从偏移量 0 开始,则不起作用

spring-boot - 我可以在运行时向我的@kafkalistener 添加主题吗

apache-camel - 如何使用 Websockets 将 Spark Streaming 数据从服务器端发送到客户端?