从SQL Server到MySQL,携程核心系统无感迁移实战

​前言

携程酒店订单系统的存储设计从1999年收录第一单以来,已经完成了从单一SQLServer数据库到多IDC容灾、完成分库分表等多个阶段,在见证了大量业务奇迹的同时,也开始逐渐暴露出老骥伏枥的心有余而力不足之态。基于更高稳定性与高效成本控制而设计的订单存储系统,已经是携程在疫情后恢复业务的必然诉求。

目前携程酒店订单系统,在着在业务高增长的同时,也面临着信息读写管理能力受制于数据库自身性能与稳定性的窘境。综合分析,一则为携程服役了十多年的SQLServer服务器集群的磁盘容量设计,已经跟不上时下新增订单量的空间诉求;二则在系统能力提升上造成了各大业务系统巨大的底层瓶颈与风险,同时又相比业界主流已基于MySQL架构设计存储系统而言,我们的订单存储系统仍基于SQLServer构建也整体推高了运营成本。

为了支撑未来每日千万级订单的业务增长目标,同时满足高可用、高性能、高可扩展的高效成本控制期望,我们为酒店部门的订单DB所有访问开发并落地了一套稳定且可靠的统一中间件封装方案,对现状收敛并提供了全局统一的热点缓存系统,彻底解决了当下订单上层应用与数据库间直连的方案缺陷。

新系统由中间件服务统一实现了对上层应用提供数据链服务,并达成了为现有依赖订单库的应用以及其他直接或间接的数据应用无感的实现存储底层由SQLServer向MySQL技术架构迁移的目标。

一、架构综述

通过对现有系统瓶颈的分析,我们发现核心缺陷集中在订单数据缓存分散导致数据各端不一致,各订单应用则与数据库直连又造成可扩展性差。通过实践我们编写中间件抽象并统一了数据访问层,以及基于数据库部署架构镜像构建了订单缓存统一管理热点数据,解决了各端差异。

从SQL Server到MySQL,携程核心系统无感迁移实战插图亿华云

图1.1

THE END
Copyright © 2024 亿华云