# 《Seckill秒杀系统》结尾:秒杀系统整体专栏总结
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★☆☆☆
- 本章重点:对《Seckill秒杀系统》专栏进行总结,从总体上梳理专栏涉及到的业务和知识点,重点掌握专栏所使用的技术,掌握高并发、高性能、高可用、高可扩展和高可维护项目的架构设计与实际落地方案,能够从实际编码角度和实际部署架构层面深度理解高并发、高性能、高可用、高可扩展和高可维护项目的设计精髓。掌握项目的极致优化策略,能够从项目代码、数据库、中间件、服务器硬件、运行环境、JVM和业务流程等多个角度深度优化项目性能,并能够结合自身实际项目思考,将从《Seckill秒杀系统》专栏学到的知识灵活应用到自身实际项目中。
大家好,我是冰河~~
经过四个多月的坚持,《Seckill秒杀系统》终于接近尾声了,也感谢大家这四个多月以来的坚持和陪伴,也相信大家在《Seckill秒杀系统》专栏中,学到了不少知识和技术。接下来,我们就一起对《Seckill秒杀系统》专栏做个总结。
# 一、总体概述
在《Seckill秒杀系统》专栏中,不仅仅是带着大家从零开始写一个秒杀业务系统,而是从需求立项到架构设计、环境搭建到编码实现、问题重现到代码优化、单体应用架构到微服务架构、秒杀系统极致优化到高并发方案落地、流量治理到链路追踪、防刷方案到风控设计、集群部署到全链路压测,再对秒杀系统整体进行极致优化。
上一章狠图(有点长,认真看,你会了解的更多)。
整个专栏共38个大的篇章,126+篇文章(每篇文章都会录制对应的视频课程),150+个源码分支,每篇文章都会对应一个源码分支,以便让大家更好的对应专栏文章、视频和小册进行学习和验证。
通过《Seckill秒杀系统》专栏,让大家从架构设计、编码实现、项目优化、流量治理、风控设计、项目部署、全链路压测、极致优化等多个层面真正掌握高并发、高性能、高可用、高可扩展和高可维护项目的架构设计与实际落地方案。
并且每一篇文章,都会为大家录制对应的视频课程,这样大家结合文章、视频、小册和源码进行学习,会起到事半功倍的效果。
试问:还有比根据专栏文章、视频、小册、源码学习更爽的事情吗?
# 二、核心技术
单就秒杀系统本身而言,就是为应对瞬时高并发、大流量场景而设计的支持高并发、大流量的系统,其背后会涉及到众多高并发、高性能、高可用的技术作为基础保障。同时,在系统中,也要重点突破库存与限购、防刷与风控、数据一致、热点隔离、动静分离、削峰填谷、数据兜底、限流与降级、流控与容灾、压测与极致优化等核心技术问题。
所以,冰河总结了秒杀系统所涉及到的最核心的技术内容,整理后如下图所示。
# 三、技术选型
在技术选型上,除了采用SpringBoot等基础框架外,也会采用容器化方案。为了尽量降低技术门槛,在整个秒杀系统的技术选型中,主要采用市面上比较主流的技术框架和方案,具体技术选型如下所示。
- 开发框架:SpringBoot、SpringCloud、SpringCloud Alibaba、Dubbo。
- 缓存:Redis分布式缓存+Guava本地缓存。
- 数据库:MySQL。
- 流量网关:OpenResty+Lua。
- 业务网关:SpringCloud Gateway。
- 持久层框架:MyBatis。
- 服务配置与注册发现:Nacos。
- 单机异步:Cola。
- 分布式事务:Hmily、Seata、RocketMQ。
- 分库分表:ShardingSphere。
- 日志治理:ELK(Elasticsearch、Logstash、Kibana)。
- 链路追踪:Sleuth、Zipkin、Prometheus。
- 容器:Docker。
- 容器化管理:Swarm、Portainer。
- 监控:Prometheus、Grafana。
- 系统限流:OpenResty+Lua、Sentinel。
- 消息中间件:RocketMQ。
- 单元测试:Junit。
- 压测工具:JMeter。
所以,通过秒杀系统,可以学习到微服务领域和DDD架构领域的主流核心技术。
# 四、适应人群
由于秒杀系统是从需求立项和用户故事开始,从零一步步搭建和开发,使用到的技术也是带着大家直接上手的。所以,整个专栏从小白到有一定开发经验的中高级工程师,有一定基础的架构师都可以学习。如果你当前或者长期受如下问题困扰,那你就更需要学习《Seckill秒杀系统》专栏了。
- 一直在小公司做CRUD,并发编程没接触过,更别提如何高并发实际项目了。
- 公司项目没什么并发,在线人数也不多,学了很多并发编程相关的知识不知道怎么用。
- 学了很多并发编程的知识,也知道一些概念,能说出一些简单的方案,但是没实际项目经验。
- 自我感觉掌握了一些高并发编程的技术方案,但是如果真正做项目时,还是不知道如何下手。
- 简历上写了熟悉并发编程,在面试过程中,面试官一般会问秒杀系统,或者其他高并发项目实战问题,不知道怎么回答。
- 在大厂工作多年,参与了一些系统的建设与研发,但是也没机会参与像秒杀系统这样高并发、大流量的系统的整个建设过程。
- 其他问题。。。
可以看到,如果小公司的小伙伴受限于业务,接触不到高并发、大流量的业务场景,大厂的小伙伴由于某些原因没有被分到高并发、大流量业务部门。但更多的是大体掌握了并发编程的基础知识,而没有系统性落地成实际高并发项目的经验,这样的小伙伴更需要学习《Seckill秒杀系统》。
# 五、如何学习
1.加入 冰河技术 知识星球(文末有知识星球优惠券,秒杀完结了,即将涨价),才能查看星球专栏文章,查看置顶消息,申请加入项目,才能看到项目代码和技术小册,如果未申请加入项目,点击项目链接,你会发现是404页面。
2.专栏的每一章会对应一个代码分支,需要切换对应的分支学习对应的文章的代码分支,同时,分支中的environment
目录里是当前分支的环境配置,大家对照学习即可。
3.学习过程中最好按照章节顺序来学习,每一章前后都是比较连贯的,并且每一章的代码实现也有先后顺序,这样按照从前往后的顺序学习,最终你会实现一个完整的秒杀系统。
注意:学习的过程,不是复制粘贴代码的过程,赋值粘贴代码是没有任何意义的,最好的学习方式就是自己动手实现代码,然后思考、总结。
4.代码结构:master分支是最新的全量代码,专栏中每一章都会对应一个代码分支,切换到章节对应的代码分支后,即可根据当前章节学习对应的代码实现,不然,在master分支中看到的是全量的代码。
5.对应代码实现上的问题,可以在专栏对应的源码提issuse:https://gitcode.net/binghe001/seckill/-/issues (opens new window)。
6.冰河也在为《Seckill秒杀系统》专栏录制完整的视频课程。
# 六、提交作业
在学习秒杀系统的过程中,为了有助于大家更好的消化吸收《Seckill秒杀系统》的知识,冰河会为大家布置相应的作业。当然,也是为了希望在学习的过程中,留下你真实的足迹,让我们一起努力,突破自身技术瓶颈。
# 1.代码作业
- 作业空间:https://gitcode.net/seckillteam (opens new window)
- 空间说明:为知识星球的用户提供项目代码提交空间,方便针对项目进行技术交流,你可以把自己实现的《Seckill秒杀系统》源码提交到空间中,按照
项目名称-用户星球编号-作者名称
的格式创建仓库,例如seckill-1-binghe
。
# 2.文字打卡
- 大家可以在 冰河技术 知识星球中,提交文字作业也可以进行文字打卡,也可以到链接 https://gitcode.net/binghe001/seckill/-/issues (opens new window) 提交issues。
主要按照如下方式进行总结:
1.今天你学了哪些章节?
2.遇到的问题是什么?
3.你是怎么解决问题的?
4.今天的收获是什么?
基于大家的打卡或者作业反馈的问题,冰河会在后续以文章和直播的形式统一解决大家学习过程中的疑问。
# 七、如何加入星球
说了这么多,前提条件是要加入冰河技术知识星球进行学习,如何加入星球呢?今天,再次为大家发放一波优惠券,名额不多了,秒杀系统完结了,也就意味着即将涨价了!
目前,领取5折优惠券,就可以跟冰河一起学习《SpringCloud Alibaba实战》、《手撸RPC专栏》和《Spring6核心技术》、以及《Seckill秒杀系统》,从零开始介绍原理、设计架构、手撸代码,
花很少的钱就能学这么多硬核技术、中间件项目和大厂秒杀系统,比其他培训机构不知便宜多少倍,硬核多少倍,如果是我,我会买他个十年!
加入要趁早,后续还会随着项目和加入的人数涨价,而且只会涨,不会降,先加入的小伙伴就是赚到。
另外,还有一个限时福利,邀请一个小伙伴加入,冰河就会给一笔 分享有奖 ,有些小伙伴都邀请了50+人,早就回本了!
# 八、其他方式加入星球
- 链接 :打开链接 http://m6z.cn/6aeFbs (opens new window) 加入星球。
- 回复 :在公众号 冰河技术 回复 星球 领取优惠券加入星球。
特别提醒: 苹果用户进圈或续费,请加微信 hacker_binghe 扫二维码,或者去公众号 冰河技术 回复 星球 扫二维码加入星球。
# 九、联系冰河
# 1.加群交流
本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “冰河” 微信(hacker_binghe),备注:星球编号
。
# 2.公众号
分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。内容在 冰河技术 微信公众号首发,强烈建议大家关注。
# 3.视频号
定期分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。
# 4.星球
加入星球 冰河技术 (opens new window),可以获得本站点所有学习内容的指导与帮助。如果你遇到不能独立解决的问题,也可以添加冰河的微信:hacker_binghe, 我们一起沟通交流。另外,在星球中不只能学到实用的硬核技术,还能学习实战项目!
关注 冰河技术 (opens new window)公众号,回复 星球
可以获取入场优惠券。