电商平台系统架构设计案例分析jinchunguang

商品详情系统是一个展示商品基本信息、参数等详情的系统,是商品购买的入口。它是电商平台中访问量最大的系统之一,苏宁易购大促期间PV量和UV量很大,这么大的访问量对系统的并发能力要求高。在业务上它与周边系统的关系是高耦合。依赖商品详情系统的的系统特别多,比如:促销系统、推荐系统、大聚惠、等众多营销系统、还有主数据系统、购物车、收藏夹等,业务复杂度高对系统设计提出更多的要求。

1.展示

产品上需要设计好页面区分展示的内容

技术上主要是页面缓存设计、前端页面模版和JAVA程序的解耦

2.数据处理

基本数据,外部系统传过来直接就可以使用的数据

聚合数据,需要加工才能使用的数据

3.服务依赖

通过MQ解耦,异构数据

解决好以上三个问题就解决了此系统核心问题。

商品详情系统在设计上分成前、中、后三层结构

页面设计:

1.动静分离

JavaScript、CSS统一放到公共的静态服务器上,完全独立的子域名,防止脏Cookie问题和动态域名中无用Cookie问题,通过文件版本号解决系统新版和旧版本之间冲突问题。

所有图片由独立的分布式图片系统管理,对原图进行不同规格的无损裁减和压缩。

2.异步加载和懒加载

商品价格、营销活动信息、库存等动态数据通过异步加载

3.多级缓存策略

a.浏览器本地缓存

协商缓存,对于某些时效要求较高的资源通过Last-modified控制数据。做到StatusCode=304

b.CDN缓存

CDN分两条线有自营CDN和合作商的CDN,图片、静态资源与伪静态数据分

别放在不到的CDN上

c.Varnish缓存

d.精准缓存

精准缓存失效用于促销活动准时展示的场景,基于Varnish缓存,通过精准控制缓存有效期实现缓存精准失效保证促销活动准时切换。

组件逻辑设计:

商品详情系统中的购买按钮和加入购物车会因商品不同走不同的流程。如:大聚惠商品、定金团商品、预售商品等因促销方式不同,走不同的业务处理流程。促销模式变化多端,可能每个月都会有变化,通常的面向接口编程和加上工厂方法或者依赖管理框架Spring也很难做到真正的解耦,虽然这样做已经符合开闭原则。我们通过观察者模式很好的解决了这个问题。让前端的页面模版和JAVA应用程序之间真正的解耦。

后台设计

商品数据统一处理设计

解耦分两块,系统交互间的解耦和商品详情系统组件间的解耦以及业务流程的解耦

系统间的解耦通过SOA服务治理来解决,但是由于业务的特殊性在服务治理和性能以及一些其它因素的权衡中,我们还选择了一种共享Redis的方式来解决解耦

商品详情系统组件间解耦以及业务流程的解耦。

我们使用中规中矩的部署方式Varnish+Apache+JBoss。

这种架构在针对中小系统没有什么问题,但像商品详情系统这种访问量巨大的系统会显的有点吃力。移动端对性能的要求更高。

a.服务分离与服务合并

PC和移动端的服务分离,以前是同一个接口支持多端,现在是每端都有独立的应用层服务,原子层服务共享。

移动端处理器和内存性能上的限制,采用服务的合并,且移动端用Nginx+Lua。

b.公共服务

提出了一个公共服务,公共服务用来接受PC、WAP、APP公共的异步请求的服务。

c.分布式文件系统

商品详情页在回源过程中压力很大,基于其不可降级,我们提出了把商品详情页做为一个静态页放到分布式文件系统,当DB和Redis压力过大,直接调取分布式文件系统中数据

多端都使用Nginx+Lua,Nginx的异步非阻塞型事件处理机制资源消耗少,并发能力高。

上面介绍了商品详情系统前、中、后三层逻辑架构以及各层的设计方法,还介绍了部署架构演变,下面是商品详情系统数据流程结构的

1.0版本:

这个结构有两个问题:

数据异构结果没有和前端展示关联起来,数据变更不能在前端及时展示

还是没有解决前端接口依赖问题。

2.0版本:

把前端分成了三部分:

基础信息组件不需要加工的消息、聚合信息组件(需要组合消息或者计算才能提供服务的)、实时数据组件处理对外部的依赖

数据异构后会以MQ形式通知基础服务,并会刷新缓存,这种结构后前端与数据层无直接依赖。

回源是缓存中最头痛的问题,随着系统业务复杂度的上升,很难从整体上把控各种业务数据在回源时给一个系统带来的压力,如果回源处理不端在极端情况下会导致DB压力瞬间上升,DB不可用或者连接数满了等问题,会发生以前类似JVMGC回收时的“stop-the-world”问题。我们回源从被动更新缓存数据更改为主动推送缓存数据从根本上解决这问题。

数据变更通过listener推送缓存至varnish

原来PC端、移动端、TV端产品、开发、测试是分中心分部门,为真正做到多端融合,进行组织架构融合,产品、开发、测试合并到一个中心,统一协调。合并后工作效率变高,产品质量提升,进行小团队做战。

展示分离是指在结合公司业务特性、产品自身特性以及降耦合指导思想进行PC、WAP、APP端(IOS、ANDROID)、TV端的展示端进行分离处理。

逻辑融合分离是指在原子服务层进行融合共享,从服务单一职责原则出发在不同端分别提供独立的服务并加上各自特性,做到接口可扩展性和服务隔离。真正做到一包部署多端使用互不影响,在业务可扩展性和可维护性上做到成本最低。

在物理层为了避免多端进行资源竞争、相互干扰进行独立部署

THE END
1.网购商城系统架构图mob649e81563816的技术博客最后,选择适合的云平台进行部署,如AWS、Heroku等,确保您的商城系统能够被用户访问。 结尾 通过以上步骤,您应该能够成功设计和实现一个简单的网购商城系统架构图。不同的系统可能有所不同,但核心思想和步骤基本相同。随着不断的练习和实践,您将会逐渐掌握更多的开发技巧。希望这篇文章能助您一臂之力,祝您在编程的旅https://blog.51cto.com/u_16175441/12885652
2.电商系统架构深度解析:微服务DDD与核心组件,除了面向用户、商家的工作流以外,平台还需要提供更多的功能模块来支撑电商系统的运作,包括 系统管理后台、支付网关集成、安全域风控、推荐引擎、物流管理、社交媒体集成等。 三、架构设计目标与原则 电商系统的架构设计需要考虑多个设计目标,以满足系统的性能、可扩展性、安全性等要求。同时,设计时需要依据一些重要的设计https://blog.csdn.net/m0_61243965/article/details/137261579
3.京东电商平台架构设计.pdf架构京东电商平台架构设计.pdf 26页内容提供方:精品资源 大小:1.74 MB 字数:约1.14万字 发布时间:2017-03-21发布于广东 浏览人气:1019 下载次数:仅上传者可见 收藏次数:1 需要金币:*** 金币 (10金币=人民币1元)京东电商平台架构设计.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览https://max.book118.com/html/2017/0321/96292405.shtm
4.基于微服务架构的电商平台的设计与实现在面对业务需求不断增多,且日益复杂的情况下,电商平台如何能够提供更好的服务成为研究的重中之重。传统的以单体式架构为基础开发的电商平台,在面对以上的问题时,其暴露出来的缺陷更加明显,如系统耦合性高、开发不灵活、设计不规范等问题。针对单体式架构开发模式的这些问题,本论文研究基于微服务架构的电商平台的设计与https://cdmd.cnki.com.cn/Article/CDMD-10701-1022017912.htm
5.电商平台中的订单设计模型详解!订单系统作为一个业务子系统,在电商、零售、餐饮、教育、医疗saas系统中都非常常见。 只要平台存在交易行为,那么必然逃不开订单系统,因为最终都需要通过创建订单,并支付,从而完成交易。 由于订单系统的高出现频率,且不同业务的订单设计思路大同小异,所以我们可以把它作为一个底层系统进行抽象,建立一套订单的设计模型,便于https://www.niaogebiji.com/pc/article/detail/?aid=32909
6.B2C电商平台整合o2o完整的系统架构设计(图)B2C电商商城相比于B2B从整个平台运营管理及o2o各大业务系统的整合协同来看,要复杂的多,对于物流、仓储、库存、crm、erp等各大业务系统的对接都是非常庞大的工程http://www.xwood.net/_site_domain_/_root/5870/5874/t_c258546.html
7.电商平台商业计划书(精选5篇)电商平台商业计划书 篇1 目录 第一部分投资背景分析2 第二部分宗旨与目标3 第三部分行业分析4 第四部分平台架构分析5 4.1总体目标5 4.2总体架构5 第五部分实施计划7 5.1商务基础平台建设7 5.2网上交易平台建设9 5.3增值应用平台建设11 5.4决策分析平台建设12 https://m.yjbys.com/chuangye/ziliao/chuangyejihuashu/584322.html
8.新闻详情java商城系统java电商系统腾讯高级工程师徐汉彬:QQ会员活动运营平台的架构设计演变 来自腾讯的徐汉彬以会员活动为背景介绍了AMS的架构演变。QQ活动运营的特点是活动多、周期短、个性化强而且过期作废。人力成本极为有限和层出不穷的业务需求是需要解决的主要矛盾,这里徐汉彬给出答案是构建高效的运营开发模式,整个系统架构从上至下分为前端层、CGIhttp://www.yixiekeji.cn/news/75.html
9.京东零售营销选品平台架构设计最后,提业内的一句名言:“软件开发没有银弹”,我们分享的平台架构设计是基于京东零售营销体系的业务使用场景的,这也是我为什么在前三章节用比较多的篇幅来介绍业务,这套架构是否适用于其他场景需要各位读者自行分析体会,当然我们设计中肯定依然有很多不足,我们团队内部也在持续的迭代优化系统,这里也欢迎各位读者可以留言https://maimai.cn/article/detail?fid=1743122195&efid=DUg0JHMlgi-xbc_jDmyPdg
10.综合性B2C电商平台设计与实现第三部分是电商平台的需求分析,先后分析功能性和非功能性需求,且加以用例图描述。 第四部分是电商平台概要设计,通过第三部门的需求分析对平台从架构搭建到各类服务组件,从个功能模块设计到数据库设计。 第五部分是电商平台详细设计与实现,从平台架构详细设计到平台功能详细设计,展示核心功能接口和部分核心代码,且附上https://www.szfangwei.cn/news/6466.html
11.SDCC2016中国软件开发者大会门票优惠本专题涵盖各类互联网后台、移动、直播等热门架构的演进过程,在架构变迁中遇到的痛点和解决方案,从而带给参会者以启发。 9.高吞吐数据库系统设计要领 本专题将邀请国内外的数据库专家,共同探讨MySQL、NoSQL、Oracle、缓存技术、云端数据库、智能数据平台等领域的前瞻性热点话题与技术,尤其是在高数据量情况下实现高吞吐https://www.huodongjia.com/event-35648068.html
12.业务中台产品搭建指南:电商业务平台全流程设计思维导图模板业务中台产品搭建指南: 电商业务平台全流程设计 业务中台 业务中台系统架构图 业务架构 电商中台 电商中台架构 作者其他创作 大纲/内容 五、深耕细作,数据驱动生产 5.1 业务情况分析 业务场景分析 深耕细作是指通过数据样本对每个流程中的细节进行分析、比对,希望通过数据反映出问题的本质和变化情况,继而提供https://www.processon.com/view/65d567cc7a29576026ed6df9
13.@所有人春风送岗:有一种心安一一家门口就业澎湃号·政务1.C语言相关产品的应用程序代码设计、产品软件架构设计; 2.负责相关产品的嵌入式单片机模块的开发; 3.负责分析和解决项目开发中出现的问题; 4.负责编写软件需求文件、架构方案文件、设计文件。 向下滑动查看 公司地址:九江市开发区恒盛科技园34栋一单元101A https://www.thepaper.cn/newsDetail_forward_11203752
14.新闻中心——驱动之家:您身边的电脑专家我们之前分析过,NVIDIA在A100中使用的计算单元架构创新实际上并不新鲜,在人工智能硬件领域已经存在了多年,而且之前也有不少初创公司尝试过类似的实现。然而,当芯片的规模上升了之后,其设计流程就不仅仅是逻辑设计问题,还需要考虑良率、散热等多方面因素,而这些看似底层的因素其实在最顶层的架构设计过程中就要考虑到——https://news.mydrivers.com/blog/20200519.htm
15.京东电商平台架构设计2014/6/291机要文档请勿外传京东架构设计目录CONTENTS架构愿景JD架构架构原则618经验架构目标架构愿景11.高可用性自动化运维。整体系统可用性99.99%,单个系统可用性99.999%。全年故障时间整个系统不超过50分钟,单个系统故障不超过5分钟2.高可扩展性系统架构简单清晰,应用系统间耦合低,容易水平扩展,增加和修改业务功能方便快捷https://www.docin.com/p-1998515541.html
16.中小型电商架构设计1.架构图 2.模块划分 2.1客户端 用户客户端app、小程序、h5网页、公众号 等都属于用户端,使用者为商城用户 管理客户端运营管理系统、WMS(仓储管理系统)、TMS(https://www.jianshu.com/p/bddcc26232bc