12306网站主要问题
在高流量和高并发情况下,传统架构系统无法提供快速的余票计算和查询结果,造成所有用户请求堵塞,系统不稳定无法正常访问,也阻挡后续流程的订票服务。
原因分析
1.数据库I/O瓶颈
-频繁的将18个路局售票交易数据即时的复制到主服务器汇总,主服务器再将数据复制到 72部 Unix 小型机
-Unix小型机频繁的数据库读/写操作,影响小型机的CPU计算性能
2.CPU运算资源
- 余票计算业务逻辑复杂, 上千万条配票规则, 耗用大量CPU计算资源
- 3000多个车次,5700个站点,不同席次,座位等级和车票等级,有千万亿条排列组
- 每班车次的余票计算都有上万条规则需要匹配和需要做余票计算
- 每个车次余票计算时间从数百毫秒到15秒
- 需要增加10倍 Unix小型机(上百部小型机)并行运算
解决策略:
12306 互联网售票系统特征是属于周期性和季节性的刚需,在理论上需要增加数十倍的服务器和网络带宽才能满足春运期间的需求。 原先系统框架受限于小型机运算性能和关系型数据库吞吐量,增加更多硬件服务器无也法解决系统瓶颈,因此在高负载情况下导致整个系统不稳定
睿晖提出利用内存数据网格技术(In Memory Data Grid)将原有系统改造成“分布式云服务应用平台”框架,整个云平台可随着业务需求弹性扩展/缩减系统资源,屏除系统瓶颈。目标是提高性能 20-50倍。
1.关联数据节点设计:根据业务逻辑特性和数据关联性,将业务逻辑和关联性强的数据放置于同一个Gemfire 节点来执行,提高计算性能,避免服务器之间频繁数据交换。
2.将数据移到内存:数据放在内存里,屏蔽数据库频繁的读/写操作瓶颈
3.系统性能线性增加:系统性能可随着服务器的数量的增加实现线性的成长
4.伸缩性扩展:以IMDG构建的应用云平台,在保证系统性能下,可以随着客户业务成长来动态调配x86虚机的数量,避免以后昂贵硬件升级
5.数据高可用性:在同个集群里面可以有多个数据节点备份,数据可以自动同步,或是将内存数据持久化到硬盘或是数据库
项目创新
1.引进内存数据网格管理平台 (Pivotal Gemfire),打造从下到上,每个环节的子系统都可独立弹性扩展的“子云平台”
2.企业客户可将关键业务“子系统”部署在数个资源丰富云计算数据中心
3.“数据网格化”的子系统可“按需”快速获取所需要的服务器虚机资源和动态调整网络带宽
4.在高流量和高负载情况下,动态调配资源,解决过去系统无法弹性扩展导致的性能瓶颈 ,两地三数据中心的混合云架构,可并行运行,互为容灾备份