Go语言学习之14 商品秒杀架构设计与开发
本节主要内容
1. 秒杀抢购背景
2. 秒杀抢购架构设计&模块划分
3. 秒杀抢购接入层实现
1. 秒杀抢购背景
(1)架构分析
电商网站架构
秒杀抢购1.0
(2)上述网站架构问题
- 和已有电商逻辑重度耦合
- 资源共享,缺乏隔离
- 服务缺乏限流和过载保护
- MYSQL存在性能瓶颈
- 系统缺乏降级措施,不能及时恢复
- 对雪崩缺乏深刻的认识
(3)架构改进
1)秒杀抢购1.0改进:
做一套独立的秒杀系统
2)秒杀抢购2.0
秒杀抢购2.0优势及问题:
优势:
- 代码和部署完全隔离,避免相互影响
- 根据后端承载能力,进行限流,防止全网挂掉
- 平台化,所有操作在web平台实时生效
- 使用Redis承载海量QPS
- 整个系统采用Go重新开发,极大地提高了系统的性能
问题:
- 秒杀系统存在崩溃了
对秒杀系统进行拆分
3)秒杀抢购3.0
秒杀抢购3.0架构设计
秒杀抢购 3.0模块划分
秒杀接入层核心功能
1. 用户登陆成功之后,服务端设置两个cookie:
userId:123456
userAuth: md5(secret + userId)
2. 抢购系统拿到这两个cookie,然后做校验。
userId:123456
userAuth: md5(secret + userId)
calcAuth = md5(secret + userId)
优化点:
将redis的配置放到etcd中,这样如果redis配置发生改变,就可以不用到同时到
proxy和layer都去修改

更多精彩