平日里,都是看別人的文章,雖開公眾號寫了不少,但像樣的不多。年末了,年終總結也沒來得及寫,為了輸出點像樣的東西,立刻就着手這個系列。一個鍵一個字母的敲,邊敲邊寫,文章還在持續更新中,直至完整。相信通過這個系列的系統練習,能有一個大跨步的提升。
專欄簡介(是什么?)
結合SpringCloud、SpringCloudAlibaba、Dubbo等開源套件,基於某商場停車業務需求,進行微服務開發實戰,力爭通過一個案例的實操,掌握微服務架構中常用的技能點,輕松入門。
為什么要寫這個專欄(為什么?)
微服務近兩年的火熱,也將很多公司的架構慢慢轉向微服務,但要直接上手微服務,還需要能過實操演練,不斷提升,才能在工作中游刃有余。
網絡上相關資源很多,但大多散亂無章,不成體系,不利於系統性掌握,無法一步步的深入其中,更不能深刻掌握各個組件在項目中實際融合情況。
雖然也有一些案例,但缺少相關的文檔細節描述,對初學者而言,僅靠閱讀代碼,難免會一知半解。於是,我就琢磨寫一個貼合實際場景的小例子,業務無須很復雜,能將這一套技術體系串連起來,自己可以跟着動手實操,通過一步一步的上手,加深對技術棧的理解。
通過本專欄要達成什么目標(到哪里去?)
本專欄將帶你完整性的實施一個項目,從需求整理、分析設計、存儲設計、關鍵業務流程設計、編碼、測試(單元測試,系統測試)、部署上線、日常監控維護等等。
時下采用敏捷研發模式做產品已經不是什么新鮮事,本專欄中也會適當融入一些敏捷方法,進行團隊協作演練。程序員同學普遍比較關注硬技能的提升,所以掌握關鍵技能很重要。同時,軟技能也要隨着硬技能的提升,同樣得到鍛煉升華,比較團隊協作能力、溝通理解能力、解決問題能力、領導管理能力等等。
本專欄實戰案例涉及到的技術棧
做Java,繞不開Spring。用Java做微服務開發,也繞不開Spring Cloud。但隨着Dubbo的重啟,並交給Apache開源社區維護后,Dubbo生態越來越完善。雖然拿Spring Cloud與Dubbo作比較不合適,但不少朋友在技術選型時會糾結選擇Dubbo還是Spring Cloud,spring-cloud-alibaba的出現,將Dubbo生態完美的與Spring Cloud生態融合在一起。你不用再糾結選擇Dubbo還是Spring Cloud,兩者可以兼容的很好。
下面羅列下可能會使用到的技術棧:
- 反向代理:nginx,可做動靜分離部署
- 統一網關:基於spring-cloud-gateway,配合JWT進行的簡單的驗權操作
- 分布式事務:Seata,阿里內部分布式事務產品不斷迭代演進而來。
- 降級、限流:hysrix/Sentinel
- 服務管理:Nacos
- 分布式配置中心:Nacos
- 客戶端負載均衡:openFeign
- 異步消息:RocketMQ,阿里開源,交由Apache孵化
- 鏈路跟蹤:Skywalking,華為開源,交由Apache孵化
- 分布式緩存:Redis
- 健康監控:spring-boot-admin
- 分布式鎖:Redission
- 代碼簡化:Lambok,mybatis-plus,mybatis-generator
- RPC框架:apache dubbo
實操項目中也會涉及到一些小組件、小技巧,更加貼近商業項目開發實戰,一同動手行動起來吧,微服務架構並不深奧,你可以掌握的更好。
專欄適宜人群
程序員、初級架構師、IT從業者、項目管理人員、IT管理人員、產品經理、業務架構師