Shopify的工程团队近来鼎新了DebeziumMySQL连结器,以便它援助数据库的增量快照,而无需连结器的写入拜访,这是将Debezium指向只读副本时所必须的。其它,DebeziumMySQL连结器此刻还容许在增量快照期间改动架构。这篇博文评释了这些功效的完结细节。
为甚么是只读的?在Netflix宣告他们的变动数据拿获框架以后,Debezium在1.6版本中增加了增量快照功效。在Shopify,咱们应用Debezium实行变动数据拿获(CDC),咱们等候成为初期采取者。其它,咱们盼望有一个无写入和无锁的处理计划。
无写入处理计划容许从只读副本拿获改动,并供应最高保证CDC不会致使数据库端数据毁坏。
往时,咱们不得不调解快照与迁徙,由于形式迁徙封闭影响了其余项宗旨开辟。处理计划是仅在周末运转快照,因而,咱们试验尽大概少地实行快照。咱们也看到了鼎新这部份过程的机遇。
这篇博文深入研讨了只读增量快如完结的技能细节,包罗MySQL连结器中增量快照期间的无锁形式改动责罚。
增量快照Debezium博客文章中的增量快照详细先容了默许完结。该算法哄骗信令表来责罚两种典型的记号:
snapshot-window-open/snapshot-window-close做为水印
execute-snapshot做为触发增量快照的一种方法
关于只读场景,咱们需求用备选计划替代这两种典型的记号。
显示高水印和低水印的主形态该处理计划特定于MySQL,并依赖于全面事宜标记符(GTID)。因而,若是您从只读副本读取,则需求设置gtid_mode并设置数据库以保存GTID按次。ON
先决前提:
gtid_mode=ONenforce_gtid_consistency=ONifreplica_parallel_workers0setreplica_preserve_