微服務架構(14):SpringCloud微服務項目技術總結
一、項目架構
微服務項目一般的架構圖如圖所示:
整個的項目現在都是採用前後端分離的開發模式。
- 前端主要是一些Vue結合Node.js來實現頁面服務端渲染方式
- (重點)後端主要是基於SpringCloud的微服務架構,對外統一Rest風格的API,採用nginx反向代理到Zuul。
二、項目技術具體解讀
一般電商的典型問題:
1、前端
- 利用的是
Node.js
(運行在服務端的 JavaScript)及Vue.js
(JavaScript 框架)技術棧,實現前後端分離,通過live-server熱部署
直接編寫原生的靜態HTML,向後端發送請求。
2、後端
- 基於
nginx
實現初步的反向代理和請求負載均衡和請求限流。 - 基於
JWT技術及RSA非對稱加密
實現真正無狀態的單點登錄 - 結合JWT和RSA非對稱加密,自定義Feign過濾器實現自動化服務間鑑權,解決服務對外暴露的安全問題。
- 基於
FastDFS
解決大數據量的分佈式文件存儲問題(例如電商的商品圖片) - 基於
Elasticsearch
高級聚合功能,實現對商品的智能過濾搜索和搜索過濾,索引庫的全文檢索
。 - 貼近數據庫設計,解決全品類的
SPU和SKU
的管理問題 - 基於
Thymeleaf
實現頁面靜態化
,保存到nginx來提高頁面響應速度和併發能力
。 - 基於阿里雲短信服務實現SMS功能。
- 基於
RabbitMQ
實現可靠消息服務,解決服務間通信問題,解決分佈式事務問題。 - 基於
Redis
搭建高可用集羣,實現可靠緩存服務即熱點數據的保存。 (重點)基於Redis和Mq來應對高可用高併發
的秒殺場景。- 基於
LocalStorage
實現離線web本地存儲,減輕服務端壓力。
三、項目部署
整個微服務項目開發測試後,通過Maven的打包成jar文件。
(1)可以直接部署到服務器上,通過命令行的java-jar + 文件名
的命令來執行。
(2)還可以部署到Docker容器
裏。