■京东商城,超大型电商系统架构设计原则与实践

京东商城系统 , 融合了自营模式、商城模式、三方平台等模式 , 跟淘宝、天猫以商城模式为主的电商系统相比 , 业务模式上要丰富很多 , 包括许多WMS、TMS、OMS的部分 。国内中小型电商公司 , 如果要学 , 最好是学习京东的业务架构 , 因为业务模式上相近一些 。
01
超大型电商系统架构目标
1.构建超大型电商交易平台 , 兼顾效率和性能 , 达到高人效、高时效和低成本的目标 。
2.低成本 , 增加服务的重用性 , 提高开发效率 , 降低人力成本;利用成熟开源技术 , 降低软硬件成本;利用虚拟化技术 , 减少服务器成本 。
3.高扩展 , 系统架构简单清晰 , 应用系统间耦合低 , 容易水平扩展 , 业务功能增改方便快捷 。
4.高可用 , 自动化运维 。整体系统可用性99.99% , 单个系统可用性99.999% 。全年故障时间整个系统不超过50分钟 , 单个系统故障不超过5分钟 。
02
京东商城业务架构设计原则
1.业务平台化
业务平台化 , 相互独立 。如交易平台、仓储平台、物流平台、支付平台、广告平台等。基础业务下沉 , 可复用 。如用户、商品、类目、促销、时效等 。
2.核心业务、非核心业务分离
电商核心业务与非核心业务分离 , 核心业务精简(利于稳定) , 非核心业务多样化 。如 , 主交易服务、通用交易服务。
■京东商城,超大型电商系统架构设计原则与实践
文章图片

文章图片

京东电商系统(来源于@京东技术部)
3.区分主流程、辅流程
分清哪些是电商的主流程 。运行时 , 优先保证主流程的顺利完成 , 辅流程可以采用后台异步的方式 。避免辅流程的失败导致主流程的回滚 。如 , 下单时 , 同步调用快照 , 异步通知台账、发票。
4.隔离不同类型的业务
交易业务是签订买家和卖家之间的交易合同 , 需要优先保证高可用性 , 让用户能快速下单 , 履约业务对可用性没有太高要求 , 可以优先保证一致性, 闪购业务对高并发要求很高 , 应该跟普通业务隔离 。
■京东商城,超大型电商系统架构设计原则与实践
文章图片

文章图片

京东业务架构实例 (来源于@京东技术部)
03
应用架构设计原则
1、稳定性原则
一切以稳定为中心;架构尽可能简单、清晰;不过度设计 。
2、接耦/拆分
稳定部分与易变部门分离;核心业务与非核心业务分离;电商主流程与辅流程分离;应用与数据分离;服务与实现细节分离 。
3、抽象化
应用抽象化:应用只依赖服务抽象 , 不依赖服务实现细节、位置 。
数据库抽象化:应用只依赖逻辑数据库 , 不需要关心物理库的位置和分片 。
服务器抽象化:应用虚拟化部署 , 不需要关心实体机配置 , 动态调配资源 。
4、松耦合 。
跨域调用异步化 , 不同业务域之间尽量异步接耦 。
非核心业务尽量异步化 , 核心和非核心业务之间 , 尽量异步接耦 。
5、容错设计 。
服务自治:服务能彼此独立修改、部署、发布和管理 。避免引发连锁反应 。
集群容错:应用系统集群 , 避免单点 。
多机房容灾:多机房部署 , 多活 。
04
京东商城应用架构分层
表现层 。包含首页、列表页、详情页 。
业务流程层 。商品系统、交易系统、订单系统、财务系统、物流系统等 。
服务层 , 服务构建层 , 其中包含:商品服务、交易服务、订单服务、财务服务、物流服务 。
在治理方面 , 包括服务质量层、数据架构层、治理层等 。
■京东商城,超大型电商系统架构设计原则与实践


推荐阅读