如设计一个秒杀系统 - 阅读摘录
(每台服务器获得自己能够卖出多少产品,用户被随机分配到每台机器上进行处理。)
需求:大量用户抢有限的商品,先到先得。用户并发访问流量非常大,需要分布式的机器集群处理请求。
系统实现:不限
模块设计:
用户请求分发模块:Nginx / Apache 分发请求到不同的机器;
用户请求预处理模块:以商品是否剩余来判断,是否处理该用户请求;
用户请求处理模块:把通过预处理的请求,封装成事务,提交给数据库,并返回是否成功;
数据库接口模块:数据库的唯一接口,负责与数据库交互,提供 RPC 接口供查询时候秒杀结束、剩余数量等信息;