微服務項目
項目是以微信訂單后臺功能為例,模擬從對業(yè)務進行微服務劃分開始慌随,然后通過運用Spring Cloud常用組件使項目微服務架構不斷完善、優(yōu)化的過程躺同。主要從以下幾個部分循序漸進地完成本項目開發(fā)阁猜,并對每個部分的環(huán)境搭建、設計分析蹋艺、關鍵步驟和代碼做詳細闡述剃袍。
第一部分從商品服務功能、訂單服務功能兩大模塊的開發(fā)入手捎谨,將兩大業(yè)務模塊做成兩個獨立的微服務模塊民效,并注冊到微服務中心EurekaServer中。
第二部分根據(jù)Spring Cloud中基于Feign的服務間的遠程調(diào)用涛救,實現(xiàn)訂單模塊對商品模塊部分功能的訪問畏邢,為了減少模塊之間代碼冗余,降低模塊之間的耦合度检吆,將項目改造為多模塊結構舒萎,模塊之間訪問時通過引入Maven依賴實現(xiàn)。
第三部分根據(jù)Spring Cloud分布式配置的相關知識來配置Git倉庫蹭沛,方便存儲項目的配置文件臂寝,使配置文件和項目文件分離,配置文件修改后不需要重啟服務摊灭,請求刷新接口后即可直接生效咆贬。
第四部分將消息隊列應用到訂單服務模塊和異步扣庫存功能,采用RabbitMQ消息框架和Spring Stream來實現(xiàn)帚呼。
第五部分在HTTP請求到達微服務之前掏缎,設計基于Spring Cloud Zuul的網(wǎng)關,實現(xiàn)客戶端訪問多個微服務的統(tǒng)一入口萝挤,根據(jù)不同請求選擇訪問不同的微服務御毅,并在訪問微服務之前通過設置過濾器實現(xiàn)權限控制、API監(jiān)控等功能怜珍。
需要完整版的小伙伴可以幫忙轉發(fā)+關注端蛆,看文章評論區(qū)評論即可~
項目總體功能描述
1.項目功能需求介紹
本章案例主要涉及微信后臺下單系統(tǒng)的核心功能模塊:商城后臺商品服務、訂單服務酥泛,具體需求如下今豆。
(1)商品服務
- 查詢商品類別嫌拣。
- 查詢所有在架的商品。
- 商品庫存更新呆躲,此功能涉及微服務間的調(diào)用异逐。
(2)訂單服務
- 查詢商品信息,根據(jù)用戶訂單中的商品ID查詢商品列表插掂,涉及微服務間的調(diào)用灰瞻。
- 查詢訂單信息,這里是根據(jù)訂單ID查詢訂單詳細信息辅甥。
- 訂單信息校驗酝润,主要檢查買家提交訂單中的必填項,如買家微信號璃弄、地址要销、姓名、手機號等夏块,并校驗其輸入格式是否正常疏咐。
- 計算總價,根據(jù)訂單項中的商品價格和購買數(shù)量脐供,計算訂單總價浑塞。
- 扣除庫存,用戶下單成功后政己,商品庫存數(shù)量需要更新缩举。此功能涉及微服務間調(diào)用和消息隊列的使用。
- 訂單入庫匹颤,將完整的訂單信息表保存到訂單表仅孩,同時將跟訂單對應的所有訂單項保存到訂單項表中,這里涉及事務管理印蓖。
2.技術框架
實戰(zhàn)涉及的技術包括:Spring Cloud Greenwich全家桶組件(Greenwich版本是基于Spring Boot 2.1.x版本構建的)辽慕、Redis緩存、消息隊列RabbitMQ赦肃、Spring Cloud Bus溅蛉、Spring Cloud Stream。分布式配置存儲使用Git他宛,項目管理工具采用Maven船侧。
全篇章節(jié)目錄展示
**Eureka Server **實現(xiàn)高可靠
配置倉庫
需要完整版的小伙伴可以幫忙轉發(fā)+關注,看文章評論區(qū)評論即可~
</article>