老K的沪知名电子商务公司是几年前被京东收购的,所以他对京东的整个技术架构体系很熟悉,并做了深入的研究。本文中的ppt来自京东商城技术团队的内部共享材料。一些涉及太多技术细节的ppt还没有发布,但在正文中提到了。
京东商城系统集成了自我管理模式、商城模式和三方平台模式。与主要基于商城模式的淘宝和天猫电子商务系统相比,商业模式更加丰富,包括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 京东商城应用架构分层
表达层。Inclu
1.水平扩展。也就是复制的能力。该应用系统可以实现多机集群,提高并发性。数据库可以单独读写,如商品阅读库和商品写作库。
2.垂直分割。指不同业务系统的分离,如商品系统和交易系统;数据库又分为商品数据库和订单数据库。
3.业务细分。分业经营,如秒杀制、常规订单制,要分开;就数据库而言,例如,订单表按标识模块化后分为数据库和表。
4.水平分割。在服务级别,功能与非功能分开,稳定的服务与易变的服务分开。在数据库方面,冷热数据分开,历史数据分开。
06 京东商城服务设计的依赖原则
1.依靠稳定的零件。稳定部分不依赖于可变部分,可变部分可以依赖于稳定部分,坚决避免循环依赖。
2.跨域弱依赖。当跨业务域调用时,应该尽可能多地使用异步弱依赖关系。
3.基于服务依赖。基于服务的服务不能向上依赖过程服务;复合服务和流程服务可以向下依赖于基本服务。条件是基本服务应该稳定。
4.非功能性服务依赖。非功能性服务不能依赖功能性服务;功能性服务可以依赖于非功能性服务。条件:非功能性服务稳定。
5.平台服务依赖。平台服务不依赖上层应用程序;上层应用程序可以依赖平台服务;条件:平台服务稳定。
6.对核心服务的依赖。核心服务不依赖于非核心服务;非核心服务可以依赖核心服务;条件:核心服务稳定。
服务设计的基本原则
1.无国籍状态。尽量不要在这台机器上保存状态数据。接口调用是幂等的。
2.可重复使用。重用粒度是一个带有业务逻辑的抽象服务,而不是服务实现细节。服务引用只依赖于服务抽象。
3.松耦合。跨服务调用尽可能异步地去耦合。当调用必须同步时,设置超时和队列大小。基本服务和易变过程服务的相对稳定的分层。
4、治理。制定服务合同,服务可以降级,服务可以限制,服务可以切换,服务可以监控和白名单。
08 京东商城数据架构设计原则
1.统一数据视图。确保数据的及时性、一致性、准确性和完整性。
2.数据和应用的分离。应用系统只依赖于逻辑数据库。应用系统不直接访问其他主机数据库,而是通过服务进行访问。
3.异构数据。当源数据和目标数据的内容相同时,索引是异构的,如商品库的不同维度。当内容不同时,数据库是异构的,例如订单买方数据库和卖方数据库。
4.数据读写分离。流量大的数据库分别读写,数据量大的数据库分为多个数据库,不同业务领域的数据库进行分区和隔离,重要数据进行配置和存储。
5.使用Mysql和其他主流数据库。除了成本因素,Mysql数据库还具有很强的扩展能力,积累了丰富的操作和维护经验。
6.合理使用缓存。当数据库能够支持时,尽量不要引入缓存。合理使用缓存进行灾难恢复。
09 京东商城技术框架概述
1.基本平台。数据访问的技术组件包括:JFS/吉姆斯特、JSS、JDW、搜索、数据库。
2.集成层。服务流程引擎PAF,服务中间件SAF,MQ服务JDMQ,数据库中间件JDAL,调度服务JDWorker,业务规则服务JDRules,配置服务JDCenter,推送服务JMP。
3.质量层。监控服务UMP、日志服务Loghub、风控制系统JDriskM、应用管理jdcenter。
其他包括治理层、虚拟平台、运营管理等。
10 京东商城系统操作和维护原则
1、可监控。服务的传输速率和传输速率是否满足服务级别协议,是否有超出预期的流量。
2.应用程序可以回滚,功能可以降级。当
5、容错。核心应用程序需要更多的活动,避免单点设计,并具有容错和修复能力。恢复时间很短。
6、可以故障转移。多机房部署可以在出现故障时及时切换。
我已经与您分享了京东商城业务架构、技术架构、数据架构、架构原则以及操作和维护原则。
随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,随商为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。
随商全新版PHP企业级电商平台系统,以客户需求为己任,提供免费网店系统源码给用户体验,为国内客户特别是上海周边客户提供电商平台及网上商城网站建设服务,您的商城开发建站需求,我们来实现!