我有一个系统,其中有一个要对其进行更改的mysql数据库。然后,我有其他每十分钟左右连接到此mysql数据库的机器,并重新下载有关它们的表(例如,一台机器可能下载表A,B,C,而另一台机器可能下载表A,D,E )。
在不使用Debezium或Kafka的情况下,有没有一种方法可以在某个时间戳记之后完成所有MySQL更改,因此 仅这些更改 会发送到请求更新,而不是整个表? ...例如,机器X自上次联系mysql数据库以来,可能希望完成所有mysql更改,然后将这些更改应用于其自己的旧数据以对其进行更新。
有什么办法做到这一点?
答案 0 :(得分:1)
可以将MySQL设置为自动复制数据库,表等。如果连接丢失,则在恢复连接时它将赶上。
答案 1 :(得分:-1)
如果您不想或可以部署Kafka集群,可以将Debezium用作library embedded到您的应用程序中。
或者,您可以直接使用MySQL Binlog Connector(也由下面的Debezium连接器使用),它使您可以从给定的偏移位置读取binlog。但是随后您必须自己处理许多事情,这些事情已经由Debezium等解决方案处理过,例如正确处理架构元数据和更改(例如,在现有表中添加列)。通常,这涉及到解析MySQL DDL,它本身非常复杂。
免责声明:我是Debezium的负责人