什么是电商
传统买东西
消费者->>门店选择商品–>>付款—>发票
网上买东西
B2B:用户->>商品->>订单->>支付 , 卖一种商品
B2C:用户->>商家->>商品->>订单->>支付
个人电商
平台电商
什么是秒杀
买票可以秒杀,抢红包也可以秒杀,网上购物也可以秒杀,场景较多
在有限的时间抢有限的资源。
1秒秒杀–》1分钟秒杀–》1小时秒杀 --》1天秒杀
用户->>商品->>订单->>支付
用户->>秒杀商品(时间限制)->>订单->>支付
秒杀商品属于商品营销类型
商品营销类型: 普通商品、秒杀商品,团购商品、分销商品、砍价商品
可以分离出 秒杀模块,时间模块
电商系统–》秒杀项目
什么是高并发系统
单个秒杀项目处理请求的数量是有限的,所以进行更多秒杀需要进行秒杀项目集群。
客户端的请求数量的无限的。
单个服务器的最大请求数量如何计算?
解决系统出现并发问题的方案是无限优化的过程。
超过单体项目的承受量 就叫做高并发系统,
亿级流量,千万级流量 是指1天的用户请求数量
高并发处理能力,就是服务器并发能力,1秒之内能够处理的请求数量
如何设计高并发秒杀系统
高并发设计原则
达到横向扩展和动态扩展的目的
拆分原则,先大后小
- 系统角度,按照系统功能或业务拆分,比如,电商系统,商品,支付,订单,用户
- 功能角度,比如,商品,添加,删除,批量更新等
- 读写拆分,比如, 商品读系统,商品写系统,读流量较大,写流量较小
无状态原则
- 读商品的系统,进行横向扩展,分流,
- 无状态服务+有状态配置,比如 缓存配置,配置中心,防止硬编码,方便系统扩展
服务化原则
- 单机不行是否可以集群,使用nginx是否可以进行负载均衡
消息队列
- 解耦,异步,限流,
缓存原则
- 本地缓存 , 内存缓存,和进程同生死, 比如 字典
- 本地分布式缓存,内存缓存,进程共享,但是内网访问,比如字典+redis(内网)
- 分布式缓存,内存缓存,进程共享,但是外网访问,比如字典+redis(外网)
异步并发化原则
async ,await 实现异步操作, 比如展示数据
可用技术,框架,工具
- 微服务
- webapi
- aspnetcore
- restful
- 缓存
- 消息队列
- 限流
- nginx
- docker
- k8s
- 服务治理
- identityserver4
- jmeter