# 《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.文字打卡

主要按照如下方式进行总结:

1.今天你学了哪些章节?

2.遇到的问题是什么?

3.你是怎么解决问题的?

4.今天的收获是什么?

基于大家的打卡或者作业反馈的问题,冰河会在后续以文章和直播的形式统一解决大家学习过程中的疑问。

# 七、如何加入星球

说了这么多,前提条件是要加入冰河技术知识星球进行学习,如何加入星球呢?今天,再次为大家发放一波优惠券,名额不多了,秒杀系统完结了,也就意味着即将涨价了!


目前,领取5折优惠券,就可以跟冰河一起学习《SpringCloud Alibaba实战》、《手撸RPC专栏》和《Spring6核心技术》、以及《Seckill秒杀系统》,从零开始介绍原理、设计架构、手撸代码,

花很少的钱就能学这么多硬核技术、中间件项目和大厂秒杀系统,比其他培训机构不知便宜多少倍,硬核多少倍,如果是我,我会买他个十年!

加入要趁早,后续还会随着项目和加入的人数涨价,而且只会涨,不会降,先加入的小伙伴就是赚到。

另外,还有一个限时福利,邀请一个小伙伴加入,冰河就会给一笔 分享有奖 ,有些小伙伴都邀请了50+人,早就回本了!

# 八、其他方式加入星球

特别提醒: 苹果用户进圈或续费,请加微信 hacker_binghe 扫二维码,或者去公众号 冰河技术 回复 星球 扫二维码加入星球。

# 九、联系冰河

# 1.加群交流

本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “冰河” 微信(hacker_binghe),备注:星球编号

冰河微信

# 2.公众号

分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。内容在 冰河技术 微信公众号首发,强烈建议大家关注。

公众号:冰河技术

# 3.视频号

定期分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外,还会分享各种面试题和面试技巧。

视频号:冰河技术

# 4.星球

加入星球 冰河技术 (opens new window),可以获得本站点所有学习内容的指导与帮助。如果你遇到不能独立解决的问题,也可以添加冰河的微信:hacker_binghe, 我们一起沟通交流。另外,在星球中不只能学到实用的硬核技术,还能学习实战项目

关注 冰河技术 (opens new window)公众号,回复 星球 可以获取入场优惠券。

知识星球:冰河技术