孙伟:腾讯云高级技术工程师,主要负责腾讯云存储和中间件产品的技术支持专项工作。有8年以上的云存储技术支持、数据迁移和架构方案经验。曾任职于其他云友商公司,担任过研发、产品改进、售后等多项工作岗位。
01
—
同步方案一览
02
—
各同步方案对比
2.1 方案1:跨区域同步能力
针对于强数据一致性的同步场景,跨区域复制功能可以很方便的通过控制台配置来实现数据的跨园区同步。
此方法优点:配置简单,控制台可视化。
此方法缺点:数据强一致性,仅适合对象同步,不含逻辑处理的场景。
2.2 方案2:工具周期同步能力
针对于实时性要求较高的同步场景,使用migration工具可以实现自定义时间同步策略。
此方法优点:可配置的轮询时间周期,同步内容与日志直观可见。
此方法缺点:依赖于CVM/客户端资源,受限于中转主机带宽资源,配置较复杂。
2.3 方案3:回源拉取同步能力
针对于热数据同步的场景,部分数据同步,降低存储成本。
此方法优点:配置简单,仅热数据被同步,节省存储空间。
此方法缺点:第一次访问会被302重定向源站,源站带宽有开销,只能被动同步,不能主动全量同步。
2.4 方案4:SCF事件触发同步能力
适用于大规模且实时性较高的数据同步,以及业务逻辑较为复杂的同步场景,比较值得推荐的方法。
此方法优点:利用SCF来实现高性能的数据同步操作,通过SCF来部署代码,具备完善的监控和日志体系,可实现较为复杂的业务同步逻辑。
此方法缺点:需要一定的编码能力,需要对VPC、SCF、COS等多种产品非常了解,配置较为复杂。
03
—
高可用数据同步方案
通过数据同步方案4的架构,结合COS自身特点与相关产品的功能,我们可以绘制出一个具备数据高可靠 高可用 容灾能力 故障切换能力的整体架构图:
数据高可靠:通过上传至Master桶后,可实现实时跨区域数据同步,确保数据主从分离,天然支持业务层多副本冗余,提升数据可靠性。
- 因采用底层存储多副本和纠错码机制,单桶的可靠性可达99.999999999%;
- 通过多桶实时同步方式,可将数据中心分散至多个园区,执行不同的策略或授权,进一步降低误操作等一系列人为故障;
- 通过SCF结合主流云服务提供商API,可实现多云的数据同步,进一步提升数据安全性;
服务高可用:通过多桶串联同步 CDN多源站机制 COS回源拉取,提升服务的连续性与健壮性。
- SCF 上传触发事件为created事件,在数据上传完成后触发,确保待上传的数据完整;
- 采用COS回源功能,能确保在资源上传Master后,但未同步至Slave和Backup节点时出现的数据访问失败问题,提供连续性的数据访问能力;
容灾能力:跨园区的多中心/多云策略,可最大限度避免大规模线路故障或服务提供商带来的影响。
- 多园区中心同步,通过中心节点互备,可避免局部性的运营商线路问题;
- 结合CDN产品,可提供多源访问,进一步避免局部运营商问题;
故障切换能力:丰富的多节点入口,可提供灵活的数据源切换,提升灾备切换能力。
- 结合智能DNS,监控等手段,用脚本自动化方式来实现故障的自动切换;
04
—
各方案测试对比
准备1个51MB文件,上传后查看同步效果。
跨园区复制
跨区域复制,同步所用的时间为0秒。
COS Migration工具
Migration工具轮询间隔设置为1秒等待,同步所用的时间为22秒。
回源拉取
同步所用的时间为4秒。
SCF事件触发同步
同步所用的时间为10秒。
05
—
结论
从测试结果看出,单从时间同步效率从高到低为:
跨地域同步->回源同步->SCF事件同步->Mig工具同步;
这几种方式满足不同需求场景,同步的性能也略有不同:
- 如果数据量不大,且希望自主控制同步时间,推荐使用“Migration工具同步”。
- 如果希望实现跨地域灾备,对象完整备份,实时性要求很高,推荐使用“跨地域同步”。
- 如果希望热数据同步,并结合腾讯云CDN产品,且源站带宽资源可靠,对用户提供无缝访问服务。推荐使用“回源同步”。
- 如果需要实现自有业务逻辑,多目标同步,对扩展性、性能都有一定要求,同时也希望节省一定外网流量费用,综合从这几个方面看。性价比较高且经济实惠的方式推荐为“SCF事件同步”。