1. 商城項目介紹


項目介紹:

谷粒商城是一個B2C模式的電商平台,銷售自營商品給客戶。

項目微服務架構圖:

 

 

 項目微服務架構說明:

1. 前后分離開發,分為內網部署(后端集群)和外網部署(前端項目,包括手機APP),外網是面向公眾訪問的。

2. 前端在頁面上操作發送請求到后端,在這途中會經過Nginx集群,Nginx把請求轉交給API網關(springcloud gateway)(網關可以根據當前請求動態地路由到指定的服務,看當前請求是想調用商品服務還是購物車服務還是檢索服務),從路由過來如果請求很多,可以負載均衡地調用商品服務器中一台(商品服務復制了多份),當商品服務器出現問題也可以在網關層面對服務進行熔斷或降級(使用阿里的sentinel組件),網關還有其他的功能如認證授權、限流(只放行部分到服務器)等。

3. 到達服務器后進行處理(springboot為微服務),服務與服務可能會相互調用(使用feign組件),有些請求可能經過登錄才能進行(基於OAuth2.0的認證中心。安全和權限使用springSecurity控制)

4. 服務可能保存了一些數據或者需要使用緩存,我們使用redis集群(分片+哨兵集群)。持久化使用mysql,讀寫分離和分庫分表。

5. 服務和服務之間會使用消息隊列(RabbitMQ),來完成異步解耦,分布式事務的一致性。有些服務可能需要全文檢索,檢索商品信息,使用ElaticSearch。

6. 服務可能需要存取數據,使用阿里雲的對象存儲服務OSS。

7. 項目上線后為了快速定位問題,使用ELK對日志進行處理,使用LogStash收集業務里的各種日志,把日志存儲到ES中,用Kibana可視化頁面從ES中檢索出相關信息,幫助我們快速定位問題所在。

8. 在分布式系統中,由於我們每個服務都可能部署在很多台機器,服務和服務可能相互調用,就得知道彼此都在哪里,所以需要將所有服務都注冊到注冊中心。服務從注冊中心發現其他服務所在位置(使用阿里Nacos作為注冊中心)。

9. 每個服務的配置眾多,為了實現改一處配置相同配置就同步更改,就需要配置中心,也使用阿里的Nacos,服務從配置中心中動態取配置。

10. 服務追蹤,追蹤服務調用鏈哪里出現問題,使用springcloud提供的Sleuth、Zipkin、Metrics,把每個服務的信息交給開源的Prometheus進行聚合分析,再由Grafana進行可視化展示,提供Prometheus提供的AlterManager實時得到服務的警告信息,以短信/郵件的方式告知服務開發人員。

11. 還提供了持續集成和持續部署。項目發布起來后,因為微服務眾多,每一個都打包部署到服務器太麻煩,有了持續集成后開發人員可以將修改后的代碼提交到github,運維人員可以通過自動化工具Jenkins Pipeline將github中獲取的代碼打包成docker鏡像,最終是由k8s集成docker服務,將服務以docker容器的方式運行。

微服務划分圖:

 

 

 微服務划分圖說明:

1. 反映了需要創建的微服務以及相關技術。

2. 前后分離開發。前端項目分為admin-vue(工作人員使用的后台管理系統)、shop-vue(面向公眾訪問的web網站)、app(公眾)、小程序(公眾)

3. 商品服務:商品的增刪改查、商品的上下架、商品詳情

4. 支付服務

5. 優惠服務

6. 用戶服務:用戶的個人中心、收貨地址

7. 倉儲服務:商品的庫存

8. 秒殺服務

9. 訂單服務:訂單增刪改查

10. 檢索服務:商品的檢索ES

11. 中央認證服務:登錄、注冊、單點登錄、社交登錄

12. 購物車服務

13. 后台管理系統:添加優惠信息等

項目技術:

1. 前后分離開發,並開發基於vue的后台管理系統

2. SpringCloud全新的解決方案

3. 應用監控、限流、網關、熔斷降級等分布式方案

4. 分布式事務,分布式鎖等

5. 壓力測試與性能優化

6. 各種集群技術的區別以及使用

7. CI/CD 使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM