|
|
当你的站点业务分布在全球多个区域,采用多台国外服务器分布式部署时,跨洲际的数据库数据同步是最棘手的技术难题。不同大洲的服务器之间几百毫秒的网络延迟,很容易导致多节点数据库之间的数据同步延迟、数据冲突,最终不同区域的用户看到不一致的业务数据,严重影响站点的使用体验。设计适配跨洲际场景的数据库同步方案,是分布式站点稳定运行的核心基础。除了先天优势,高防CDN本身的产品属性也极为高端,在市场竞争中才能保持不败。 https://www.kkce.com/zhuji
首先要根据不同业务场景的数据一致性需求,选择对应的同步策略。对于用户评论、文章内容这类对数据一致性要求不高的场景,可以采用最终一致性的异步同步方案,不同区域的本地数据库优先响应当地用户的写入请求,后台在后台异步把数据同步到其他所有区域的数据库节点中。这种模式下本地用户的写入操作几乎没有额外等待延迟,体验非常流畅,数据在几秒内就能完成全节点同步,完全能满足绝大多数普通内容站点的业务需求。
对于交易、支付这类对数据一致性要求极高的核心业务,不能直接使用异步同步方案,必须采用优化后的半同步同步机制。核心数据写入时,至少要保证两个不同大洲的数据库节点都写入成功,才给用户返回操作成功的响应,哪怕其中一个区域的数据库节点出现故障,其他节点依然保留完整的正确数据,不会出现数据丢失的问题。同时针对跨洲际的长延迟链路做传输优化,把同步等待的额外延迟控制在用户可接受的范围内,兼顾数据一致性和访问体验。
还要设计完善的跨区域数据冲突自动处理机制,当不同节点的用户几乎同时修改同一条数据时,自动识别数据冲突,按照预设的优先级规则自动合并数据,不会出现数据互相覆盖的问题。同时定期在后台运行全节点的数据一致性校验任务,对比不同区域数据库中的数据差异,自动修复同步过程中出现的少量异常数据,保证全球所有节点的数据库数据最终完全一致,不会出现长期的数据偏差问题。
|
|