写点什么

毕业设计

作者:沐风
  • 2022 年 1 月 23 日
  • 本文字数:728 字

    阅读完需:约 2 分钟

一、性能估算

业务模块 :

商品查询>抢购>抢购结果查询

1、存储性能估算

秒杀参与用户:按日活的 3 倍来估算,100W*3=300W;

抢购记录:本次参与秒杀的有 2 种商品,假设每种商品用户都参与抢购,

则抢购记录为 300W*2 = 600W,假设每条记录大小为 20KB,则 600W*20KB=114G;

2、计算性能估算

2.1、商品查询:假设抢购活动开始前后 5 分钟内参与抢购的用户每人查询 10 次商品,

则 QPS 为:300W*10 / 5 分钟 / 60 秒 = 10W;

2.2、抢购:秒杀活动开始后 5 分钟内商品即被抢光,

则 TPS 为:300W / 5 分钟 / 60 秒 =1W;

2.3、抢购结果查询:假设抢购活动结束后 5 分钟内参与抢购的用户每人查询结果 2 次,

则 QPS 为:300W*2 / 5 分钟 / 60 秒 = 2W;


二、存储架构设计

1、活动日数据量预估为 114G,单机 Mysql 能够支持存储,但无法支撑抢购活动的读、写压力,读写操作都

基于 Redis,因 QPS 达到 10W,接近单机最大负载了,需要使用 Redis 分片集群。

2、对于抢购操作先写到 MQ 中,由批处理应用来消费 MQ 消息并处理抢购逻辑,以达到瞬时计算和写压力,批处理应用处理完抢购逻辑后把结果同步写入 Redis 和 Mysql,Mysql 用于抢购记录和抢购结果持久存储;


三、负载均衡架构

TPS 最高 1W,QPS 最高 10W,单台 Nginx 性能就能满足

四、缓存架构设计

系统使用 4 级缓存,为尽可能减轻抢购活动的瞬时流量对系统的压力,且老板要求万无一失,增加 CDN 缓存,商品图片等静态资源都提前更新到 CDN 上;

五、可扩展架构设计

1、为避免秒杀影响电商系统和周边其他系统,需要把秒杀拆分出来作为一个独立的服务,隔离秒杀对其他服务的影响;

2、秒杀核心功能拆分为:商品查询、抢购、抢购结果查询,考虑的商品查询的 QPS 最高,把这商品单独拆分为一个服务,抢购及抢购结果查询相关性比较高,这 2 个模块合并为一个服务。

综上,拆为如下两个服务:

六、高可用架构设计


用户头像

沐风

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
毕业设计