导读:本文将探讨如何设计一个快速、可靠的商品系统存储架构。
作者:李玥
来源:大数据DT(ID:hzdashuju)

电商的商品系统所包含的主要功能就是增、删、改、查商品信息,业务逻辑比较简单,支撑的主要页面就是商品详情页。尽管如此,在设计商品系统的存储架构时,仍然需要着重考虑如下两个方面的问题。
第一,需要考虑高并发的问题。不管是哪种电商系统,商品详情页一定是整个系统中DAU(Daily Active User,日均访问人数)最高的页面之一。
商品详情页DAU高的原因与用户使用电商App的习惯息息相关,绝大部分用户浏览完商品详情页之后不一定会购买,但购买之前一定会浏览很多同类商品的详情页,正所谓“货比三家”。
所以商品详情页的浏览次数要远高于系统的其他页面。如果在设计商品系统的存储架构时,没有考虑到高并发的问题,那么在电商系统举办大促活动的时候,海量的浏览请求会在促销开启的那一刻同时涌向我们的系统,支撑商品详情页的商品系统必然是第一个被流量冲垮的系统。
第二,需要考虑商品数据规模的问题。商品详情页的数据规模,可以总结为如下六个字:数量多,体量大。
为什么说“数量多”?在国内一线的电商平台中,SKU(Stock Keeping Unit,库存单元,在电商行业也可以直接将其理解为“商品”)的数量大约在几亿到几十亿这个量级。当然,实际上并没有这么多种。
商品数量级这么大的原因有很多,比如,同一个商品通常会有数种不同的版本型号,再比如,商家为了促销需要,可能会反复上下架同一个商品,或者为同一个商品加上不同的“马甲”,这些原因都导致了SKU数量巨大。
为什么说“体量大”?我们可以打开一个商品详情页看一下,从上一直拉到底,看看页面有多长?一般来说都在10个屏幕高度左右,并且这其中不仅包含了大量的文字,还会包含大量的图片和视频,甚至还包含了AR/VR的玩法。所以说,每个商品详情页都是一个“大胖子”。
商品系统的存储架构,需要保存这么多的“大胖子”,还要满足高并发的需求,任务非常艰巨。
01 商品系统需要保存哪些数据
本节就来讨论商品详情页需要保存哪些信息,下面将商品详情页里的所有信息都总结在了图3-1所示的思维导图中。

▲图3-1 商品详情页所含信息思维导图
在图3-1中,右边灰色部分所列举的信息,均来自电商平台的其他系统,我们暂且不讨论;左边黑色部分所列举的信息,都是商品系统需要存储的内容。
那么,应该如何存储这么多内容呢?能不能像保存订单数据那样,设计一张商品表,把这些数据全部存放进去?或者说,一张表存不下就再加几张子表,这样存储行不行?其实并不是不可以,现今的一线电商企业,在发展的早期阶段采用的就是这种存储结构。而现今它们所采用的复

本文深入探讨电商商品系统存储架构设计,面对高并发与大规模商品数据的挑战,提出将商品信息分为基本信息、参数、图片视频、商品介绍四部分,分别采用数据库、MongoDB、对象存储和静态化策略存储。使用Redis作为前置缓存,MongoDB存储商品参数,对象存储处理图片和视频,商品介绍静态化以提升访问速度和节约资源。这种架构有效减轻了数据库压力,利用CDN加速访问,实现了高并发场景下的高效处理。
最低0.47元/天 解锁文章
5398

被折叠的 条评论
为什么被折叠?



