秒杀高并发系统关注的问题 服务单一职责,独立部署 秒杀服务即使自己扛不住压力,挂掉了以后,也不要影响到别的服务 秒杀的链接加密 防止恶意攻击,模拟秒杀请求,1000/s攻击,防止链接暴露 防止工作人员提前秒杀商品 库存预热,快速扣减 秒杀请求是读多写少的场景,无需每次实时校验库存,库存做预热放到redis即可 信号量控制进来秒杀的请求 动静分离 nginx做好动静分离,保证秒杀和商品详情的动态请求打到后端的服务集群,使用CDN网络分担集群压力 恶意请求拦截 识别非法请求攻击并进行拦截,这部分需要在网关层去做,不能放进服务里面再拦截 流量错峰 使用各种手段,将流量分担到更大宽度的时间点,比如 验证码(用户输入需要时间), 加入购物车(用户完成实际的下单行为需要时间) 限流熔断降级 前端限流(限制用户直接点击的次数,就算点了,也不给他发那么多请求), 后端限流(识别用户的正常行为或者恶意行为,反正给他加上限制,不允许一定时间内多次处理), 限制次数,限制总量,快速失败降级运行,熔断隔离防止雪崩,直接给用户返回当前流量过大,请稍后访问 队列削峰 一万个商品,每个1000件秒杀,双十一所有秒杀成功的请求,进入队列,慢慢创建订单,扣减库存即可
秒杀高并发系统关注的问题
服务单一职责,独立部署
秒杀服务即使自己扛不住压力,挂掉了以后,也不要影响到别的服务
秒杀的链接加密
防止恶意攻击,模拟秒杀请求,1000/s攻击,防止链接暴露
防止工作人员提前秒杀商品
库存预热,快速扣减
秒杀请求是读多写少的场景,无需每次实时校验库存,库存做预热放到redis即可
信号量控制进来秒杀的请求
动静分离
nginx做好动静分离,保证秒杀和商品详情的动态请求打到后端的服务集群,使用CDN网络分担集群压力
恶意请求拦截
识别非法请求攻击并进行拦截,这部分需要在网关层去做,不能放进服务里面再拦截
流量错峰
使用各种手段,将流量分担到更大宽度的时间点,比如
验证码(用户输入需要时间),
加入购物车(用户完成实际的下单行为需要时间)
限流熔断降级
前端限流(限制用户直接点击的次数,就算点了,也不给他发那么多请求),
后端限流(识别用户的正常行为或者恶意行为,反正给他加上限制,不允许一定时间内多次处理),
限制次数,限制总量,快速失败降级运行,熔断隔离防止雪崩,直接给用户返回当前流量过大,请稍后访问
队列削峰
一万个商品,每个1000件秒杀,双十一所有秒杀成功的请求,进入队列,慢慢创建订单,扣减库存即可
权限控制 RBAC基于角色的访问控制,是一种广泛使用的访问控制模型,通过角色来分配和管理用户的菜单权限 这里以若依为例 sys_dept部门表和sys_post岗位信息表就是身份表 sys_menu菜单权限表和sys_role角色信息表 sys_role-dept角色和部门管理表
权限控制
RBAC基于角色的访问控制,是一种广泛使用的访问控制模型,通过角色来分配和管理用户的菜单权限
这里以若依为例
sys_dept部门表和sys_post岗位信息表就是身份表
sys_menu菜单权限表和sys_role角色信息表
sys_role-dept角色和部门管理表