架构实战营毕业设计
6.18 电商秒杀系统
一、系统分析
二、总体架构
系统整体采用微服务架构,按照业务域,对系统做一级的粗粒度划分,再在各业务域中根据不同的业务领域做更细粒度的二级划分。
三、缓存
因为系统用户量大,秒杀活动开始前后,会有大量的并发请求,为缓解后台服务器对静态资源的处理的压力,同时提高请求处理性能,采用多级缓存的缓存架构。
四、负载均衡
因为系统用户量大,估计在秒杀活动开始前,会有 400 万用户同时在线,秒杀活动开始时,服务器将面临巨大的并发流量,承担巨大压力。故而采用多级缓存架构。
五、存储
因采用微服务架构,不同业务领域已拆分微服务,各服务集群的数据库(MySql)采用读写分离、主从复制的存储架构。
同时,用户、订单等相关业务(与用户有直接关系的相关业务),采用分库分表架构,其他数据,如商品数据,采用统一库(数据中心/数据中台)进行管理。即整体类似单元化架构。
六、异地多活
虽然目前公司只有单机房,但是考虑到公司的用户量、业务范围等,在可预见的时间范围内(1-2 年)会有稳步的发展,借秒杀系统开发、上线的需求,为公司下一步发展做基础,故秒杀系统采用异地多活架构,机房分南北机房。机房间数据同步,分业务分别采用消息队列同步和数据库同步。
七、库存
秒杀系统最容易出问题的地方就是库存。本系统商品库存采用库存拆分的方式,让两个机房平均分配库存,当一个机房库存为 0 时,会去请求另一个机房的库存。
八、其他
1.系统秒杀瞬时并发量高,非秒杀活动时间,并发量平稳,为更好地保证后端服务器不被瞬时的高并发压垮,后端服务的不同层级或不同同级服务间的调用会有消息队列,上面架构图中粒度较粗,并未单独列出。
2.针对秒杀业务,会在各级服务中增加限流算法(如漏桶算法、随机失败等),架构图中未作列出,仅此处说明。
评论