五個月,秒殺,38個大的篇章,126+篇文章、影片、小冊,150+原始碼分支,完美收官!

發表於2023-09-19

大家好,我是冰河~~

經過四個多月的堅持,《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秒殺系統》。

好了,今天就到這兒吧,我是冰河,我們下期見~~

相關文章