我有一个学术问题,在我为我的大学论文实习的时候出现了。
到目前为止,出于测试目的,我一直在开发一个Kafka集群,以将两个MySQL数据库相互连接;我已经设法通过利用Debezium Mysql连接器(源)和JDBC连接器(接收器)来实现这一点。
现在,我的老板正在探索在生产中长期使用Debezium的选择,但他不相信它可以从数据库中获取数据,而不执行任何查询或其他可能给数据库带来压力的操作。
我看了一下Debezium的源代码,当然,我没有在实际读取binlog的模块中找到任何执行SELECT或其他查询的代码,但同时我也无法收集Debezium实际上是如何做到这一点的。
Debezium的JDBC实现是否有能力以某种方式读取日志文件?或者它只是设法以某种方式定位日志文件并将其传输到连接器?
我老板的怀疑并不是完全没有根据的,因为连接器需要与具有SELECT权限的用户连接,但如果它不是一个比定期轮询更优雅的解决方案,它就不会像现在这样流行。
1条答案
按热度按时间qxgroojn1#
连接器利用MySQL binlog client来连接并充当MySQL拓扑上的副本,以便在binlog事件写入主节点的事务日志时读取和处理它们。
因此,将MySQL副本添加到集群中所经历的开销与将Debezium添加到MySQL数据库的流更改中所看到的开销相同。