我创建了一个 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/