商品系统架构设计与实践

本文介绍了vivo官方商城商品系统从单体架构到服务化的演进过程,包括商品活动、秒杀、代销系统和库存的剥离,以提升系统稳定性和性能。面对挑战,实施了如多级缓存、读写分离、限流和分布式事务等解决方案,以保证数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

随着用户量级的快速增长,vivo官方商城v1.0的单体架构逐渐暴露出弊端:模块愈发臃肿、开发效率低下、性能出现瓶颈、系统维护困难。

从2017年开始启动的v2.0架构升级,基于业务模块进行垂直的系统物理拆分,拆分出来业务线各司其职,提供服务化的能力,共同支撑主站业务。

商品模块是整个链路的核心,模块的增多严重影响系统的性能,服务化改造势在必行。

本文将介绍vivo商城商品系统建设的过程中遇到的问题和解决方案,分享架构设计经验。

二、商品系统演进

将商品模块从商城拆分出来,独立为商品系统,逐渐向底层发展,为商城,搜索,会员、营销等提供基础标准化服务。

商品系统架构图如下:

前期商品系统比较杂乱,包含业务模块比较多,如商品活动业务、秒杀业务,库存管理,随着业务的不断发展,商品系统承载更多的业务不利于系统扩展和维护。

故思考逐渐将商品业务逐渐下沉并作为最底层、最基础的业务系统,并为众多调用方提供高性能的服务,下面介绍商品系统的升级历史。

2.1 商品活动、赠品剥离

随着商品活动的不断增多,玩法多样,同时与活动相关的额外属性也相应增加,这些都并不是与商品信息强关联,更偏向于用户营销,不应该与核心商品业务耦合在一起,故将其合并入商城促销系统。

赠品不仅仅是手机、配件,有可能会是积分、会员等,这些放在商品系统都不合适,也不属于商品模块的内容,故同步

商品中心,是一个核心系统,会和其他系统都有交集,比如:网站、订单、采购、仓储、配送...,所以独立出来,做一个单独的商品中心,有人负责,还是很有必要的。 商品状态:0.新建(待进货)、1.待售(入库后)、2.上架(在售)、3.下架(停售),将来有审核的话用-状态 术语: 款号:style,一个系列,一般都是供应商或者生产厂家进行编码并提供; 款色编码:供应商或生产厂家对某个系列下某个颜色商品的编码;到色的,级别对应的是系统的商品编码; 商品编码:系统按照一定的规则,对商品进行的规律性更强的编码,这个系统使用8-10位数字; 货品编码:我们把到尺码的商品,定义为货品,这个系统对货品的编码采取商品编码+3位数字的方式; 分类和属性绑定: 分类和属性绑定,必须先绑定属性项,再绑定属性值,绑定属性项时,必须设置属性的规则(比如是否多远,是否必填,是否网站显示),即这些规则限制都是跟着分类走的; 规则限制以后的行为,不限制既存的数据:比如把一个属性项修改成必填,不代表要把过去的数据都设成必填。 数据批量导入: 数据的批量导入,比如商品货品批量进入,批量调价等,本系统不使用Excel,建议使用页面上的表格,并间隔时间自动保存,存储格式为JSON,可以多次编辑进行导入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾听铃的声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值