2、跨域弱依赖 。跨业务域调用的时候,尽可能异步弱依赖 。
3、基于服务依赖 。基于服务不能向上依赖流程服务;组合服务、流程服务可以向下依赖基本服务 。条件是基本服务要稳定 。
4、非功能性服务依赖 。非功能性服务不能依赖功能性服务;功能性服务可依赖非功能性服务 。条件:非功能性服务稳定 。
5、平台服务依赖 。平台服务不依赖上层应用;上层应用可依赖平台服务;条件:平台服务稳定 。
6、核心服务依赖 。核心服务不依赖非核心服务;非核心服务可依赖核心服务;条件:核心服务稳定 。
07
服务设计基本原则
1、无状态 。尽量不要把状态数据保存在本机,接口调用幂等性 。
2、可复用 。复用颗粒度是有业务逻辑的抽象服务,不是服务实现细节 。服务引用只依赖于服务抽象 。
3、松耦合 。跨业务调用,尽可能异步解耦 。必须同步调用时,设置超时和队列大小 。相对稳定的基本服务与易变流程服务分层 。
4、可治理 。制定服务契约、服务可降级、服务可限流、服务可开关、服务可监控、白名单机制 。
文章插图
京东商城应用架构实例图 (来源于@京东技术部)
08
京东商城数据架构设计原则
1、统一数据视图 。保证数据的及时性,一致性、准确性、完整性 。
2、数据、应用分离 。应用系统只依赖逻辑数据库;应用系统不直接访问其它宿主数据库,只能通过服务访问 。
3、数据异构 。源数据和目标数据内容相同时,做索引异构,如商品库不同维度 。内容不同时,做数据库异构,如订单买家库和卖家库 。
4、数据读写分离 。访问量大的数据库做读写分离,数据量大的数据库做分库,不同业务域数据库做分区隔离,重要数据配置备库 。
5、用Mysql等主流数据库 。除成本因素外,Mysql数据库扩展能力强,运维积累了大量丰富经验 。
6、合理使用缓存 。数据库有能力支撑时,尽量不要引入缓存 。合理利用缓存做容灾 。
文章插图
(来源于@京东技术部)
文章插图
(来源于@京东技术部)
09
京东商城技术架构总览
1、基本平台 。数据存取方面的技术组件包括:缓存服务有JFS/Jimstore、图片服务JSS、即时服务JDW、索引服务Search、数据库服务DBS 。
2、集成层 。服务流程引擎PAF、服务中间件SAF、MQ服务JDMQ、数据库中间件JDAL、调度服务JDWorker、业务规则服务JDRules、配置服务JDCenter、推送服务JMP 。
3、质量层 。监控服务UMP、日志服务Loghub、风控系统JDriskM、应用管理jdcenter 。
其它还包括治理层、虚拟平台、运营管理等等 。
文章插图
(来源于@京东技术部)
10
京东商城系统运维原则
1、可监控 。服务的TPS和RT是否符合SLA,是否出现超预期流量 。
2、应用可回滚,功能可降级 。应用出现问题时,要求能回滚到上一版本,或做功能降级 。
3、在线扩容 。超预期流量时,应用系统可选择在线水平扩展 。
4、安全保证 。确保系统和保密性和完整性 。具有足够的防攻击能力 。
5、可容错性 。核心应用要求多活,避免单点设计,并且自身有容错和修复能力 。故障恢复时间短 。
6、可故障转移 。多机房部署,发生故障时能及时切换 。
文章插图
(来源于@京东技术部)
以上跟大家分享了京东商城业务架构、技术架构、数据架构,以及架构原则、运维原则 。
作者:K,知名电商公司技术老K级人物 。文出过畅销书,武做过CTO,若不是生活所迫,谁愿意一身才华 。
秒懂生活扩展阅读
- 教你零基础做电商运营 零起步如何做跨境电商运营
- 3分钟带你了解其模式 淘宝门店发货是什么意思
- 免费才能推广自己的店铺 店铺如何推广运营
- 童装一件代发货源app分销模式讲解 童装分销怎么算提成
- 快手直播带货怎么做? 快手直播带货运营技巧!
- 到店自提模式详解 物流自提是什么意思
- 体验京东商城的优势有哪些 京东商城怎么样申请退款
- 京东商家入驻详细规则 京东招商入驻官网
- 怎么看京东店铺动态评分?如何提高?
- 淘宝新店宝贝上架了怎么刷单?新店如何运营?