分布式数据库架构改造,让技术不再是业务发展的瓶颈
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库架构改造,让技术不再是业务发展的瓶颈双十一过完的第一个工作日,又到了袋鼠小妹跟大家分享服务案例的时候啦。
今天分享的客户案例,是成立于2014年的某社交众筹平台。(出于保护客户隐私和机密的要求,相关信息已做脱敏处理。)
该众筹平台目前已拥有超过一亿个注册用户,筹款项目近130万个,总支持次数超过2亿次,是目前中国最具影响力的、基于社交圈的众筹平台之一。
经过两年的快速发展,平台的业务规模已经远超预期,蜂拥而来的流量让系统服务器达到了峰值,尤其是数据库在业务峰值期间经历着严峻的考验。
在这种情况下,客户通过渠道联系到了袋鼠云。
袋鼠云的数据库专家,使用自研的云资源管控平台(EasyCloud),迅速对客户数据库做了全面体检。
EasyCloud平台:云资源监控界面
发现其问题如下:
1. 核心数据库压力大(CPU使用率60%,QPS 3万+),不时的性能抖动已经影响业务。
2. 核心MySQL数据库数据量超过TB,单表数量几亿条,单库容量达到天花板。
3. 系统架构设计不合理,压力全部落到数据库,导致系统扩展性弱,限制了业务发展。
4. 数据库请求非常集中,90%以上的请求都在某几张表上,业务的峰值和热点非常明显,有点类似电商的热点商品秒杀;
5. 资源配置过高,超高的资源配置掩盖了技术架构的问题;
针对体检出来的问题和实际场景,袋鼠云规划了两个阶段的解决方案:短期以优化为主,以适应当前业务的快速发展;长期以架构改造为导向,通过架构来从根本上解决性能瓶颈。
短期解决方案:
思路上以“短、平、快”为主,解决当前性能瓶颈,主要聚焦在SQL优化,参数调整,读写分离等,优先满足当前几个月的性能需求。
1、数据库瓶颈分析,定位到大部分请求来自于几张表,重点对这几张表进行优化。
2、数据库读写分离,通过使用备库来分摊读压力,避免大量的读请求影响到主库和正常的业务流程。
3、慢SQL,对慢SQL进行优化和索引上的调整。
4、通过EasyCloud的AWR报表分析,对部分调用次数高的SQL,采用类似缓存等。
通过袋鼠DBA多次的数据库优化和调整,整个系统压力下降明显,数据库没有再出现响应慢的问题,解决了当前的性能瓶颈。
平台性能的明显提升,让客户对袋鼠云的技术实力有了一定的信任,这为后期架构方案的顺利执行,奠定了基础。
长期解决方案:
前面解决完短期的性能瓶颈,袋鼠DBA快马加鞭,对客户整体系统架构,重新进行了梳理和设计。
应用层采用微服务架构,原有数据库使用分库分表、缓存设计,满足系统未来2-3年的业务发展目标。
这样一来,即使未来系统容量不够,架构也无需进行大的重构,可以很方便地进行水平扩容,不会让技术成为业务发展的瓶颈。
解决内容如下:
1、基于阿里云EDAS做服务化设计。
2、协助客户对业务架构进行改造,通过缓存设计、页面渲染、前后端交互等,减少不必要的数据请求,使系统能够支持更大的流量和并发。