Skip to content

binghe001/distribute-seckill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

作者简介

今年的努力 ✨

我出版的图书

  • 2020年出版《海量数据处理与大数据技术实战》 —— 涵盖企业级大数据处理方方面面的知识,并从零搭建并开发离线批处理系统和在线实时计算系统。
  • 2020年出版《MySQL技术大全:开发、优化与运维实战》 —— 程序员与运维工程师必备的700多页的MySQL工具书,涵盖MySQL基础、开发、优化、运维和架构方方面面的知识。
  • 2021年出版《深入理解分布式事务:原理与实战》 —— 全网首部系统、深入讲解分布式事务的书籍,涵盖:分布式事务基础、解决方案、原理、源码与实战等篇章,真正从企业实际需求出发,系统、深入的讲解分布式事务,来自京东、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家高口碑力荐。
  • 2022年出版《深入理解高并发编程:核心原理与案例实战》 —— 全面、系统、深入的讲解高并发技术,涵盖:并发基础、原理、实战与架构的方方面面知识。来自阿里巴巴、蚂蚁金服、京东、高德、CSDN、饿了么、58集团等互联网大厂以及多家互联网独角兽企业的近20位专家高口碑力荐。
  • 2022年出版《深入高平行開發:深度原理&專案實戰》 —— 《深入理解高并发编程:核心原理与案例实战》的繁体版书籍。
  • 2023年出版《深入理解高并发编程:JDK核心技术》——全面、系统、深入的讲解JDK高并发编程技术,涵盖:JDK并发基础、核心工具和线程池核心技术等篇章,深度剖析了JDK中各种并发类库和线程池的核心源码,并提供手写线程池案例。来自阿里巴巴、腾讯、蚂蚁金服、京东、高德、CSDN、饿了么、58集团等互联网大厂以及多家互联网独角兽企业的近20位专家高口碑力荐。

我的部分电子书

  • 《深入理解高并发编程(第2版)》 —— 全书共计 八 大篇章,433页,耗时 4 个月完成,全网最全的高并发编程知识手册,涵盖:学习路线、源码分析、JDK核心类库、基础案例、实战案例、性能优化、面试、和系统架构等篇章,发布当月下载量即突破5万,全网累计下载30万+。
  • 《深入理解高并发编程(第1版)》 —— 全书共计 五 大篇章节,392页,耗时6个月完成。涵盖源码分析、基础案例、实战案例、面试和系统架构等篇章,全网累计下载65万+。
  • SpringCloud Alibaba实战》—— 全书共计 十 大篇章,26个章节,332页,涵盖:专栏设计、微服务介绍、微服务环境搭建、服务治理、服务容错、服务网关、链路追踪、消息服务、服务配置和分布式事务等篇章,全网累计下载10万+。
  • 冰河的渗透实战笔记》—— 冰河整理的全网首个开源的以实战案例为背景的渗透实战笔记,全书共442页,共计37万字(不计空格)。整本书的内容涵盖:Kali基础、渗透工具、木马制作、钓鱼链接生成、爆破密码、内存溢出攻击、web渗透、数据提权、社会工程学,全网累计下载20万+。
  • 从零开始写RPC框架(基础版)》 —— 在RPC框架中会实现同步调用、异步调用、回调调用、单向调用和泛化调用。框架中会使用大量的SPI技术来实现扩展性,其中,整个框架会采用微内核、插件化的开发模式,最终真正做一款可在实际场景使用的RPC框架。
  • 《MySQL核心技术》 —— 全书共19章、16万字,涵盖了MySQL核心基础知识的方方面面内容,非常适合MySQL数据库初学者入门,也适合MySQL技术高手系统化的梳理MySQL基础知识,及时查漏补缺,全网累计下载5万+。
  • 《Spring IOC核心技术》 —— 全书共27章,19万字,涵盖Spring IOC最核心的技术,全网累计下载8万+。

联系我

添加微信:hacker_binghe - 备注来意

关于本仓库

📚 本专栏是 冰河技术 知识星球《手写秒杀系统》专栏的部分说明,查看完整的课程+源码可以加入 冰河技术 知识星球获取。

项目说明

大家好,我是冰河~~

本项目是冰河带着大家一起从零开始搭建并开发一套可支持瞬时百万流量的高并发秒杀系统,这里会涉及到很多互联网大厂开发过程中所使用的核心技术和架构设计模式,也有冰河在大厂工作过程中,自主研发和参与研发的企业级中间件技术。

目前已完成的章节如下图所示,后续规划的还有:网关、隔离策略、削峰限流、熔断、降级、流控、热点容灾、防刷风控、服务器极致优化、单机Java性能极致优化、监控、链路追踪、数据统计、黑白攻防、安全风控、容器化等等大厂核心技术。


在《Seckill秒杀系统》专栏中,你学到的不仅仅是一套支持瞬时百万流量的高并发、高性能、高可用、可扩展的秒杀系统,更重要的是要学会大厂处理高并发、大流量场景的技术方案和架构设计思想,并学会如何将这些技术方案和架构设计思想落地到实际项目中。

一、秒杀专栏背景调研

相信很多小伙伴学习了不少关于并发编程相关的基础知识,同时,不少小伙伴也看了冰河出版的《深入理解高并发编程:核心原理与案例实战》与《深入理解高并发编程:JDK核心技术》图书。当然,后续根据实际情况,可能会出版《深入理解高并发编程》系列的其他书籍。但是很多小伙伴在和冰河交流的过程中,普遍存在如下几个问题:

  • 一直在小公司做CRUD,并发编程没接触过,更别提如何高并发实际项目了。
  • 公司项目没什么并发,在线人数也不多,学了很多并发编程相关的知识不知道怎么用。
  • 学了很多并发编程的知识,也知道一些概念,能说出一些简单的方案,但是没实际项目经验。
  • 自我感觉掌握了一些高并发编程的技术方案,但是如果真正做项目时,还是不知道如何下手。
  • 简历上写了熟悉并发编程,在面试过程中,面试官一般会问秒杀系统,或者其他高并发项目实战问题,不知道怎么回答。
  • 在大厂工作多年,参与了一些系统的建设与研发,但是也没机会参与像秒杀系统这样高并发、大流量的系统的整个建设过程。
  • 其他问题。。。

可以看到,从收集的这些并发编程相关的问题来看,存在的问题是普遍性的:小公司的小伙伴受限于业务,接触不到高并发、大流量的业务场景,大厂的小伙伴由于某些原因没有被分到高并发、大流量业务部门。但更多的是大体掌握了并发编程的基础知识,而没有系统性落地成实际高并发项目的经验。

为了彻底解决小伙伴们的困惑,也为了进一步突破大家的技术瓶颈,冰河带着他的《Seckill秒杀系统》来了,在这里,你学到的不仅仅是一套支持瞬时百万流量的高并发、高性能、高可用、可扩展的秒杀系统,更重要的是要学会大厂处理高并发、大流量场景的技术方案和架构设计思想,并学会如何将这些技术方案和架构设计思想落地到实际项目中。。

二、为何要搞秒杀系统

说起秒杀系统,我相信学习这个专栏的你一定对秒杀系统有所了解,甚至多多少少也参与了秒杀活动。为啥?因为国内头部电商平台每年的618、双11都会举行大促活动,相信你是参与过的,最起码你可能为这些活动贡献了流量。而每年的618、双11最直观的体现就是流量和交易额。


这些最直观的数字背后,却需要很多高并发编程的知识和技术作为支撑。作为程序员,或者说互联网技术人,尤其是了解一些并发编程技术和方案的开发者,一定对每年618、双11大促背后的技术感兴趣。

单就秒杀系统本身而言,它是高并发、大流量场景下最具代表性的系统,如果你连秒杀系统的各项技术细节都了然于胸了,那其他涉及到并发的系统对你来说,还叫个事儿吗?另外,秒杀系统背后涉及到的高并发、高性能、高可用、可扩展的技术思路和架构模式与架构思想,你可以直接复用于任何需要支撑高并发、大流量的业务场景。

另外,一般只有互联网大厂才具备真正研发秒杀系统的业务场景,所以,这次《Seckill秒杀系统》专栏也是一次贴近大厂真实项目的机会,专栏中涉及到的架构模式和技术点都是大厂在研发秒杀系统过程中真正实践和优化过的架构模式与技术点,认真学习《Seckill秒杀系统》专栏,认真消化吸收专栏中的每项知识点、技术思路和架构模式,并亲自动手实践每个并发编程的技巧和方案,相信你会有非常多的收获,而这些收获是实实在在的,也是互联网大厂经常使用的核心技术。

三、秒杀系统核心技术

单就秒杀系统本身而言,就是为应对瞬时高并发、大流量场景而设计的支持高并发、大流量的系统,其背后会涉及到众多高并发、高性能、高可用的技术作为基础保障。同时,在系统中,也要重点突破库存与限购、防刷与风控、数据一致、热点隔离、动静分离、削峰填谷、数据兜底、限流与降级、流控与容灾等核心技术问题

所以,冰河总结了秒杀系统所涉及到的最核心的技术内容,整理后如下图所示。


由图也可以看出,《Seckill秒杀系统》专栏一定不会让你失望,它能够将真正的高并发编程知识串起来,形成知识面,并将这些高并发编程知识落地成秒杀系统,而在开发秒杀系统的过程中所使用到的技术,是互联网大厂真正在使用的核心技术。

注意:《Seckill秒杀系统》专栏会大量使用到冰河出版的《深入理解高并发编程:核心原理与案例实战》与《深入理解高并发编程:JDK核心技术》图书中的知识,建议学习《Seckill秒杀系统》专栏的过程中,阅读《深入理解高并发编程:核心原理与案例实战》与《深入理解高并发编程:JDK核心技术》图书。

四、如何学习秒杀系统

1.加入 冰河技术 知识星球,才能查看星球专栏文章,查看置顶消息,申请加入项目,才能看到项目代码和技术小册,如果未申请加入项目,点击项目链接,你会发现是404页面。

2.专栏的每一章会对应一个代码分支,需要切换对应的分支学习对应的文章的代码分支,同时,分支中的doc/assets/sql里是当前分支的最新SQL语句,在对应的分支查看SQL,更新到自己的数据库中即可。

3.学习过程中最好按照章节顺序来学习,每一章前后都是比较连贯的,并且每一章的代码实现也有先后顺序,这样按照从前往后的顺序学习,最终你会实现一个完整的秒杀系统。

注意:学习的过程,不是复制粘贴代码的过程,赋值粘贴代码是没有任何意义的,最好的学习方式就是自己动手实现代码,然后思考、总结。

4.代码结构:master分支是最新的全量代码,专栏中每一章都会对应一个代码分支,切换到章节对应的代码分支后,即可根据当前章节学习对应的代码实现,不然,在master分支中看到的是全量的代码。

5.对应代码实现上的问题,可以在专栏对应的源码提issuse:https://gitcode.net/binghe001/seckill/-/issues

6.冰河后续会为《Seckill秒杀系统》专栏录制完整的视频课程。

五、提交作业

在学习秒杀系统的过程中,为了有助于大家更好的消化吸收《Seckill秒杀系统》的知识,冰河会为大家布置相应的作业。当然,也是为了希望在学习的过程中,留下你真实的足迹,让我们一起努力,突破自身技术瓶颈。

1.代码作业

  • 作业空间:https://gitcode.net/seckillteam
  • 空间说明:为知识星球的用户提供项目代码提交空间,方便针对项目进行技术交流,你可以把自己实现的《Seckill秒杀系统》源码提交到空间中,按照 项目名称-用户星球编号-作者名称 的格式创建仓库,例如 seckill-1-binghe

2.文字打卡

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

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

2.遇到的问题是什么?

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

4.今天的收获是什么?

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

六、如何加入星球

说了这么多,前提条件是要加入冰河技术知识星球进行学习,如何加入星球呢?今天,再次为大家发放一波优惠券,名额不多,先到先得。


这样算来,原价299,立减149,150元就能加入星球。跟冰河一起学习《SpringCloud Alibaba实战》、《手撸RPC专栏》和《Spring6核心技术》、以及《Seckill秒杀系统》,从零开始介绍原理、设计架构、手撸代码,

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

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

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

七、其他方式加入星球

  • 链接 :打开链接 http://m6z.cn/6aeFbs 加入星球。
  • 回复 :在公众号 冰河技术 回复 星球 领取优惠券加入星球。

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

八、联系冰河

1.加群交流

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

冰河微信

2.公众号

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

公众号:冰河技术

3.视频号

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

视频号:冰河技术

4.星球

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

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

知识星球:冰河技术

About

💥💥💥冰河技术知识星球《手写秒杀系统》专栏部分源码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published