秒杀系统设计
概要设计原理
前端:实现动静分离,将静态资源部署到第三方的服务器上实现加速例如 七牛云等CND加速。
后端:先生成要抢购商品的数量的令牌,封装List保存到redis中。之后谁抢到令牌了,就将商品的一些信息保存到MQ中之后异步的根据MQ去修改库存实现秒杀。
Java实现微服务秒杀抢购课程安排
1.秒杀抢购前端优化方案
2.秒杀抢购如何防止超卖问题
3.基于MQ和Redis实现秒杀抢购
4.秒杀抢购如何防止伪造
使用Nginx实现页面缓存(前端优化)
events {
#的最大连接数(包含所有连接数)1024
worker_connections 1024; ## Default: 1024
}
http{
# 代理缓存配置
proxy_cache_path "./meite_cachedata" levels=1:2 keys_zone=meitecache:256m inactive=1d max_size=1000g;
server {
listen 80;
location /{
#使用缓存名称
proxy_cache meitecache;
#对以下状态码实现缓存
proxy_cache_valid 200 206 304 301 302 1d;
#缓存的key
proxy_cache_key $request_uri;
add_header X-Cache-Status $upstream_cache_status;
#反向代理地址
proxy_pass http://127.0.0.1:8080;
}
}
}
使用数据库乐观锁实现防止超卖问题
数据库表接口