1 / 15
文档名称:

电商系统峰值架构研究.ppt

格式:ppt   大小:1,765KB   页数:15页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电商系统峰值架构研究.ppt

上传人:170486494 2019/1/25 文件大小:1.72 MB

下载得到文件列表

电商系统峰值架构研究.ppt

相关文档

文档介绍

文档介绍:@目标场景类似双10,双11,黑五这类大促请求量、网络流量,短时间可达平时10倍,甚至几十倍秒杀,限时抢购瞬时流量可达平时的几十、上百倍,一个不慎,可能瞬间把整个集群摧垮各种没有节操的攻击找你的薄弱环节,狠狠地压你各种网站联盟、线上、线下引流面临的问题带宽可能不够:做好图片、页面、资源压缩,节省流量数据库可能撑不住:IO、CPU、连接数过高缓存服务器可能撑不住:CPU,连接数过高Session服务器负载过高应用服务器可能撑不住:CPU、连接数、线程数、执行时间过长第三方接口可能会撑不住:短信、个推等个别页面或业务的瞬间压力过大可能会导致整个系统面临很大的风险各种原因,可能会宕机整体解决思路提前进行容量规划和场景分析场景分析很重要、分析出可能的热点和薄弱环节功夫在戏外,平时工作要做足核心思想:分而治之,大系统小做、小系统大做Partition(Scalable)Everything,AsyncEverywhere,CachingEverything,RememberEverythingWillFail(Cluster,Monitor)两个重点方向:既要“快”–天下武功,唯快不破又要“稳”–稳定压倒一切“快”—CachingEverything将有效期较长的页面进行CDN缓存或反向代理服务器缓存有效期短的页面或数据缓存到本地内存或者分布式缓存服务器,如Redis考虑缓存失效情况,避免缓存失效穿透,造成后端瞬间压力过大将混合型页面进行动静分离,如单品页,介绍性内容静态化;价格、库存等动态异步加载有些只是Request级别或线程级别的数据,可以缓存在HttpContext或ThreadStatic变量中,避免多次从远程获取“快”—应用代码结构和流程尽量避免使用Session尽量避免大量的嵌套循环、无意识的linqjoin操作,大数据量的排序和筛选,选取高效的算法。尽量避免大数据量的复杂字符串操作尽量减少远程调用的次数,提供粗粒度接口远程调用时尽量使用长连接,减少频繁创建连接带来的资源损耗尽量避免需要大量序列化和反序列化的操作尽量避免创建大快内存,减少GC压力必要时进行异步处理和并行处理“快”—数据库SQL优化:重构索引、where字句优化减少大事务、最小化一致性要求数据库读写分离:Master-Slaver数据库分库:按业务垂直拆分,分散压力,保护主流程数据库分区:按时间进行分区通过MQ异步写库:削峰填谷“快”—负载均衡通过负载均衡进行快速扩展集群容量实现弹性扩容,ScalableEverything!通过硬件实现:Scaler通过软件实现:LVS,HAProxy,NginxRPC服务框架自动实现负载均衡,如dubbo自实现各种负载均衡算法稳-分而治之按业务,按模块进行拆分,使每个模块又轻又快,小而美。公共模块SOA化,集中监控和扩容使CPU密集、IO密集、占用内存高等不同资源敏感的服务得以不同的方式进行扩容热点分离,减少各模块之间互相影响,保护核心业务流程可以针对性的进行监控、流量控制和扩容做好超时控制,每个远程调用都设置合理的超时时间参考架构—当当