基于springboot【电商-仿京东-微服务-秒杀】

一、项目简介

**1、限流:**只能让秒杀成功的一小部分人进入到后台,和数据库进行交互,来减少数据库服务器的压力。

**2、缓存:**将部分业务逻辑写到缓存里,例如:商品限购数量、秒杀政策等。

**3、异步:**将业务逻辑拆分,减少服务器压力,例如:正常业务流程是下订单、付款、减库存同一时间完成,秒杀时可以将业务逻辑拆分。

**4、预热:**商家进行宣传,并提前设置好秒杀的商品、秒杀时间、限购数量,将设置的商品写入 redis 缓存。

**5、展示:**页面分为两层,第一层是商品列表页,第二层是商品详情页,通过商品列表页链接进入商品详情页,秒杀开始前,展示商品秒杀倒计时,不允许操作提交订单,只允许查看商品详情。秒杀开始时,展示商品秒杀到期时间。

**6、提交订单:**秒杀提交完订单将 redis 缓存里的数量减少,并提示支付。

**7、队列操作:**当支付成功之后,将秒杀成功详情写入 rabbitMQ,订单服务进行监听接收消息写入订单,库存服务进行监听接收消息减少库存。

**8、时间服务器:**页面服务端通过负载进行布署,各服务器时间可能会不一致,因此增加时间服务,来提供统一的时间。

**9、爬虫服务:**用来模拟京东商品,爬取商品入库。

**10、搜索引擎:**采用ES来做高亮搜索和加速索引速度。

二、架构图:

在这里插入图片描述
在这里插入图片描述

**时间服务:**为页面服务提供时间统一的接口。

**商品服务:**对外提供的接口(商品列表、商品详情、秒杀政策)。

**库存服务:**队列监听,在队列中提取消息与数据库交互减少库存。

**会员服务:**为页面服务提供会员数据接口,会员的添加、修改、登录。

**订单服务:**队列监听,在队列中提取消息与数据库交互生成订单。

**页面服务:**为前端页面提供数据接口。

**注册中心:**各服务都在注册中心进行注册。

**配置中心:**提供所有服务需要的配置。

Redis里存取内容:
缓存商品数量、秒杀政策。

商家对秒杀政策、商品限量进行设置,设置完成写入Redis。

消费者访问商品详情,提交订单之后,从Redis中减少商品数量。

1、在政策新增的时候存入,key的值为:LIMIT_POLICY_{sku_id},value的值为政策内容

2、商品列表取数据时,通过key(LIMIT_POLICY_{sku_id}),取出政策内容。

3、政策到期之后,自动删除。

RabbitMQ的应用:
消费者提交订单,自动写入订单队。

**订单队列:**订单服务监听订单队列,接收到消息之后将队列信息写入数据库订单表。

消费者付款之后,更新订单状态,更新成功之后写入库存队列。

**库存队列:**库存服务监听库存队列,接收到消息之后将库存信息写入数据库减少库存。

三、项目预览

1.搜索商品
在这里插入图片描述
2.加入秒杀策略
在这里插入图片描述
3.秒杀页面
在这里插入图片描述
4.提交订单
在这里插入图片描述
5.模拟付款
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coding路人王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值