老K的沪知名电子商务公司是几年前被京东收购的,所以他对京东的整个技术架构体系很熟悉,并做了深入的研究。本文中的ppt来自京东商城技术团队的内部共享材料。一些涉及太多技术细节的ppt还没有发布,但在正文中提到了。
京东b2b2c商城系统3集成了自我管理模式、商城模式和三方平台模式。与主要基于商城模式的淘宝和天猫电子商务系统相比,商业模式更加丰富,包括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 京东b2b2c商城系统3操作和维护原则
1、可监控。服务的传输速率和传输速率是否满足服务级别协议,是否有超出预期的流量。
2.应用程序可以回滚,功能可以降级。当
5、容错。核心应用程序需要更多的活动,避免单点设计,并具有容错和修复能力。恢复时间很短。
6、可以故障转移。多机房部署可以在出现故障时及时切换。
我已经与您分享了京东商城业务架构、技术架构、数据架构、架构原则以及操作和维护原则。
随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,ShopSuite为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。