- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ArchSummit2014全球架构师峰会京东商城交易系统双11总结
十大原则
原则一:流量隔离
原则二:灾备切换
原则三:水平扩展-分流
原则四:超预期流量-限流
原则五:保护系统-降级
原则六:提高性能-读写分离
原则七:唯快不破-异步化
原则八:动态,静态流量分离
原则九:线上压力测试-发现瓶颈
原则十:预案
流量隔离原则
前提:按照业务拆分系统
网站系统:首页,列表,频道,单品,搜索
交易系统:价格,购物车,结算,支付,订单中心
基础服务:促销,库存,商品,用户
订单系统:管道,OFW,订单中间件,生产系统
流量隔离原则
二 流量隔离
1 机房入口流量隔离
1)按照运营商维度隔离机房入口流量
2)按照业务的重要等级隔离机房入口流量
2 机房间专线的流量隔离
不同业务,不同系统分配不同的网络带宽。
渣土车和运钞车不同路。
3 机房内部流量隔离
按照机柜分配机器。
灾备切换原则
前提条件:多机房部署
1 无状态应用N机房部署
2 有状态应用双机房部署
数据一致性保证:
1) 程序双写:灵活,集群间相互切换快。
a 同步双写
数据一致性高,影响性能,不适合多个集群。
b 异步双写
数据一致性差,性能高,适合多个集群。
举例:购物车系统。
灾备切换原则
2 底层存储数据复制
优点:数据一致性高
缺点:主从切换不灵活,复制节点出问题后,恢复慢。
二 机房入口流量切换
机房内部出现大面积故障和机房入口流量故障
1 入口流量切换策略
1)DNS域名:较慢,机房入口处问题+机房内部,有地域性
2)LVS+HAProxy 直接路由:较快,机房内部大面积故障
灾备切换原则
三 机房内部切换
调用者客户端切换
1 Java应用切换策略:底层服务框架,VIP,内部DNS
2 缓存切换策略
3 数据库切换策略:客户端,DB自身
四 灾备集群
1 空闲灾备集群
热点缓存,管理成本
2 小流量灾备集群
增加事故风险
3 全部切换-部分切换
灾备切换原则
第一步:交易流量切换
第二步:数据库停写
第三步:数据库停复制
第四步:Redis停复制
第五步:逆向恢复
分流原则
一 水平扩展 无状态应用简单,有状态难
二 系统峰值引流,秒杀系统:
1数据完全独立的部署 热点数据少
2应用独立部署
3定制化的策略
三 非重要业务分流到单独集群
购物车的库存状态,地址
结算页的运费险,Promise标志
降级原则
一 系统级降级
1 结算页-成功页-订单中心-订单详情
2 下游系统降级 一次拆分暂停
二 业务功能模块降级:
1 业务逻辑
实时价格更新不及时
2 页面降级
我的京东首页 动态降级到静态
3 非关键业务屏蔽
购物车库存状态
4 远程服务降级到本地缓存 运费
动静分离原则
一 静态流量
流量大入口带宽占用高,机房间无流量
1 CDN
2 单独部署
二 动态流量
流量小,系统依赖复杂,机房间有流量
异步化原则
一 页面异步化
购物车,结算页
二 写逻辑异步化
促销,库存
线上压测原则
压测驱动架构
一 读逻辑
二 写逻辑
三 覆盖范围
四 性能指标
1 硬件:cpu,内存,硬盘,网络
2 软件:吞吐量,并发数,服务响应时长(客户端/服务端 )
五工具
1 tcpcopy
2 压测工具
3 恶意流量
系统举例-实时价格
系统举例-实时价格
特点1:
纯动态,无法进行CDN缓存
特点2:读写调用量大
特点3:读写比高
系统举例-实时价格
一 业务逻辑概述
京东的实时价格由采销人员后台设置,京东价+促销信息(类型,开始,结束时间)。用户在前台商品详情页访问。京东价由采销设置的京东价+促销规则(直降等)计算而出。
二 写逻辑流程
1 采销后台更新价格,写关系型DB,通过异步任务通知发布程序。
2 发布程序更新促销信息主redis数据,更新价格主redis的过期时间戳。
三 读逻辑流程
1 Nginx直接读取本地redis中的价格数据,无过期则直接返回用户。
2 过期或没有命中则回源访问价格服务,取最新数据返回用户。
四 回源写逻辑
1 Java价格服务读取促销信息主redis,计算价格返回用户,同时异步写价格主redis集群。
2 价格主redis集群同步数据到前置Nginx节点的从redis
系统举例-实时价格
水平扩展-分流原则:
前置Nginx+Redis的架构是无状态的,Redis中几乎存放了全部商品价格信息。 可以水平扩展,瓶颈在于主redis的数据复制能力。
超预期流量-限流原则:
前置Nginx增加了限流规则:规则+限流数据。
保护系统-降级原则:通过开关控制回源,降级为不回源,业务影响为价格不更新,但交易系统的价格为最新价格。
提高性能-读写分离原则:
读写逻辑分成几个闭环,完全互不干扰。
唯快不破-异步化原则:
采销
文档评论(0)