电商模块设计
2025-07-05 11:41:51 0 举报
电商核心流程
作者其他创作
大纲/内容
商品中心
publish
流量错峰
网页静态化处理
consumer延迟回滚topic
低
4.验证秒杀时间是否超时
插入订单记录
商家发货
买N赠M
商品模块
本地缓存:商品售罄:发布订阅
获取会员信息发送优惠券
下单成功?
jvm缓存2
三级缓存:redis
交易中心
查询商品
秒杀下单链路
优惠券
stock-sync
商品资料(文字+图片)
预热
包邮
1.检查方法
pull拉取
瞬时并发高
获取购物车,订单商品优惠信息订单创建
扣减库存插入订单
用户中心+认证中心
order-status-check处理20分钟未支付的订单
扣减库存
Nignx缓存
二级缓存:jvm
订单确认
从CDN拿到网页的静态内容
满减
1.还原扣减库存2.清除本地缓存售罄标记,并通知服务群
监听binlog发现商品修改
下单成功
1.没有购物车就创建购物车2.有购物车看商品是否存在,不存在就添加,存在就改变商品的数量
秒杀系统-技术特性
后台
用户浏览
网关层-流量拦截
满立减
营销活动展示,优惠券发放
优化券补发
下单提交
文本
预扣库存
productId:iphoneXbuyerName:小明toolsid: 25
商品搜索
jvm cache
付款
发送订单消息push
5.获取用户收获地址列表
Canal
已登陆
后端
支付
下单排队状态:用户+商品
消费异步下单消息
生成订单
db库存同步标记
前端
动静分离
Redis
低廉价格
秒杀业务设计
满就赠
2.、调用会员服务获取会员信息
营销工具
商品查询
consumer库存同步topic
大幅推广
第三级缓存存商品总量的10%~15%,一般商品
获取商品和货品信息
商品包邮
一对多
持续时间短
订单服务3
6.构建商品信息
消息发送失败或发送过程中抛异常
限时抢购
subscribe
防止少卖,同步db库存到redis
运费,满减等活动
团购
Vip折扣
微信砍价
过期时间
营销工具配置
秒杀系统
商品流程
活动管理,优惠券发放
秒杀结果页
秒杀下单的过程
消息发送?
异步下单
认证登陆
是否登陆
下单
瞬时售空
商品展示
CDN层-流量拦截
更新订单
订单级优惠
rocketmq
jvm缓存3
认证登陆中心
促销
订单服务2
网盟系统
1.使用redis的原子操作减库存不会有并发问题2.如果减完之后库存小于0,要再加回来3.如果库存小于0,要让mysql的库存重新同步到redis中,防止少卖。并在redis中设置同步标记
商品修改
商品详情
1.查找未支付的订单2.还原DB库存3.还原缓存中的库存。
商品详情页查看
创建订单
营销活动订单数据
订单服务1
商家后台
秒杀业务特性
营销活动-满x减y
订单服务4
1.还原预减库存2.清除本地缓存售罄标记,并通知服务群 (redis 发布publish)3.返回下单失败
jvm本地缓存-流量拦截
商品级优惠
第二级缓存存商品总量的5%~8%,如首页,比较热门的商品
6.预扣库存
将变化的数据同步到redis中
营销工具优先级(作用域)
1、检查本地缓存售罄状态2、校验是否有权限购买token3、判断redis库存是否充足4、 检查是否正在排队当中
限时促销
定时获取
秒杀模块
mysql
目的是:将更多的流量拦截在mysql之前,以此保护mysql
consumer异步下单topic
redis层-流量拦截
应用服务
折扣
流量倒金字塔拦截
支付红包
下单链路
登陆态,立即秒杀
商品下架
商品发布
一级缓存:nginx
发送订单延时消息
送优惠券
jvm缓存1
营销中心
7.构建订单信息,异步下单
检查库存,没有就设置售罄
应用启动的时候,将活动产品全部存到redis
生成履约单
修改排队标记,设置订单号
小二后台
订单确认页
3.从产品服务获取产品信息
秒杀
同一个分布式事务中
网页的动态数据通过java程序访问
商品库存
网关
高
限时、限量、限价
productId:iphoneXtoolscode: mstoolsid: 25toolstype:商品渠道:pc 、app
缓存大小
团购预售
8.计算会员积分
根据域名拿到ip
同步秒杀活动
添加购物车
async-order
h5/app/pc
瞬时上架
会员中心
。。。。
7计算订单总金额
限流熔断降级
是
预热快速扣减
java应用程序
1.要考虑正向下单,和逆向退款的流程,正向和逆向积分,优惠券等的处理2.正常下单和秒杀下单的区别,正常下单没有使用redis 缓存商品,也没有使用异步下单,就计算金额,加锁扣减库存,如果并发大的话,也可用异步下单的方式3.对于会员积分计算,优惠券等等,如果想解耦,可以使用mq来进行解耦,异步4.对于商品金额的计算,要注意营销活动的优先级。
redis原子操作扣库存
获取商品优惠价格
单一职责
Nignx流量分发
RocketMq
前端不停的访问
在redis里设置排队标记,返回下单排队中
商品详情页多级缓存
营销模块
成功
是否登陆?
查询秒杀订单状态
队列削峰
设置db库存同步标记
0 条评论
下一页