如何通过项目更好的学习并发编程?

作者:冰河
星球:http://m6z.cn/6aeFbs
博客:https://binghe.gitcode.host
文章汇总:https://binghe.gitcode.host/md/all/all.html
源码获取地址:https://t.zsxq.com/0dhvFs5oR

沉淀,成长,突破,帮助他人,成就自我。

大家好,我是冰河~~

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

scekill-2023-04-16-001.png

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

scekill-2023-04-16-002.png

一、秒杀专栏背景调研

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

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

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

scekill-2023-04-16-004.jpg

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

二、为何要搞秒杀系统

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

scekill-2023-04-16-005.jpg

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

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

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

三、秒杀系统核心技术

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

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

scekill-2023-04-16-006.png

由图也可以看出,《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
scekill-2023-04-16-007.png

2.文字打卡

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

1.今天你学了哪些章节?
2.遇到的问题是什么?
3.你是怎么解决问题的?
4.今天的收获是什么?

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

写在最后

对项目不太了解的小伙伴也可以到github:https://github.com/binghe001/distribute-seckill 进行了解,冰河会整理部分源码和说明到github,欢迎各位小伙伴一起交流,一起学习,一起进步,在技术的道路上一起探索,收获满满~~

scekill-2023-04-16-009.png

好了,今天就到这儿吧,我是冰河,我们下期见~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容