《京东应用架构设计与治理》.pdf

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《京东应用架构设计与治理》.pdf

京东应用架构设计 吴博 2014/7/18 机要文档 请勿外传 1 目录 CONTENTS 架构愿景 业务架构 应用架构 数据架构 技术架构 618经验 1 架构愿景 架构目标 4. 多快好省 构建超大型电商交易平台 ,兼 顾效率和性能,达到高人效、 3. 低成本 高时效和低成本的目标 增加服务的重用性,提高开发效率, 降低人力成本;利用成熟开源技术, 降低软硬件成本;利用虚拟化技术, 2. 高可扩展性 减少服务器成本 系统架构简单清晰,应用系统间耦合 低,容易水平扩展,业务功能增改方 1. 高可用性 便快捷 自动化运维。整体系统可用性99.99% ,单个 系统可用性99.999%。全年故障时间整个系统 不超过50分钟,单个系统故障不超过5分钟 1 架构愿景 质量要求 可用性 互操作性 可管理性 性能 可靠性 可扩展性 安全性 概念 完整性 质量 可维护性 易用性 要求 可重用性 可支持性 可测试性 3 架构愿景 总体架构原则 可用性 ? N+1原则 ? 版本可以回退 ? 功能可开关 ? 容错设计 ? 使用成熟的技术 ? 可监控 ? 多维度拆分 ? 不过度设计 ? 松耦合 ? 抽象化 ? 服务可重用 ? 可水平扩展 ? 单一责任原则 ? 采用同质化硬件 ? DID原则 可扩展性 成本 2 JD架构 架构组成和关键点 业务架构 应用架构 数据架构 技术架构 解耦 拆分 抽象 集成 复用 治理 目录 CONTENTS 架构愿景 业务架构 应用架构 数据架构 技术架构 618经验 2 业务架构 业务架构设计原则 1. 业务平台化 2. 核心业务、非核心业务分离 ? 业务平台化,相互独立。 如交易平 ? 电商核心业务与非核心业务分离, 台、仓储平台、物流平台、支付平 核心业务精简(利于稳定),非核 台、广告平台等 心业务多样化。如,主交易服务、 ? 基础业务下沉,可复用。如用户、 通用交易服务 商品、类目、促销、时效等 4. 区分主流程、辅流程 3. 隔离不同类型的业务 ? 分清哪些是电商的主流程。运行时, ? 交易业务是签订买家和卖家之间的 优先保证主流程的顺利完成,辅流 交易合同,需要优先保证高可用性, 程可以采用后台异步的方式。避免 让用户能快速下单 辅流程的失败导致主流程的回滚。 ? 履约业务对可用性没有太高要求, 如,下单时,同步调用快照,异步 可以优先保证一致性 通知台账、发票 ? 闪购业务对高并发要求很高,应该 跟普通业务隔离 2 架构架构 业务架构图 2 业务架构 业务架构实例:基础业务下沉 目录 CONTENTS 架构愿景 业务架构 应用架构 数据架构 技术架构 618经验 3 应用架构 应用架构设计原则 2 解耦/拆分 ? 稳定部分与易变部分分离 ? 核心业务与非核心业务分离 ? 电商主流程与辅流程分离 ? 应用与数据分离 1 稳定性原则 ? 服务与实现细节分离 3 抽象化 ? 一切以稳定为中心 ? 应用抽象化:应用只依赖服务抽象, ? 架构尽可能简单、清晰 不依赖服务实现细节、位置 ? 不过度设计 ? 数据库抽象化 :应用只依赖逻辑数据 库 ,不需要关心物理库的位置和分片 ? 服务器抽象化 :应用虚拟化部署,不 需要关心实体机配置,动态调配资源 架构原则 5 容错设计 4 松耦合 3 ? 服务自治:服务能彼此独立修改、 ? 跨域调用异步化:不同业务域之间 部署、发布和管理。避免引发连 尽量异步解耦。 锁反应 ? 非核心业务尽量异步化:核心、非 ? 集群容错:应用系统集群,避免 核心业务之间 ,尽量异步解耦 单点 ? 必须同步调用时,需要设置超时时 ? 多机房容灾:多机房部署,多活 间和任务队列长度 3 应用架构 京东应用架构 3 应用架构 架构分析 应用架构 数据架构 基础架构 3 应用架构 架构分解原则 应用系统 数据库 1. 水平扩展 读写分离 多机集群,提高并发能力 高并发 (复制) 如,商品读库,商品写库 2. 垂直拆分 按业务域划分系统 按业务分库 (不同业务拆分) 如,商品系统 交易系统 如,商品库,订单库 3. 业务分片 按功能特点分开部署 分库分表,提高数据容量 大数据 (同业务分片) 如,秒杀系统 如,订单库按ID分库分表 4. 水平拆分 服务分层 冷热数据分离,历史数据 (稳定与易变分离) 功能与非功能分开 分离 稳定性 3 应用架构 依赖原则 2. 跨域弱依赖 ? 跨业务域调用时,尽可能异步 弱依赖 1. 依赖稳定部分 3. 基本服务依赖 ? 稳定部分不依赖易变部分 ? 基本服务不能向上依赖流程服务 ? 易变部分可以依赖稳定部分 ? 组合服务、流程服务可以向下依赖 ? 要求:避免循环依赖 基本服务

您可能关注的文档

文档评论(0)

qspd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档