書接上回<java一個腳手架搭建-CSDN博客>
這個腳?架項?開發前,你要大概的了解一下這些東西:
Java基礎、IDEA使?、Maven基礎
? Linux基礎
? Springboot/Spring Cloud 基礎?
? MySQL基礎
? Redis基礎
? RabbitMQ基礎
? Docker基礎
? Git基礎
? JavaScript、CSS、HTML
? VUE基礎
我們可以拿到網上找到的微服務架構圖理解
?對于本項目,我們大概可以想到微服務的一些流程
?微服務介紹
??通過客?端(瀏覽器)操作,客?端(瀏覽器)將請求發送?代理服務器(Nginx)。
? 若??請求靜態資源,Nginx 可直接處理并將資源返回給客?端(瀏覽器)展?。
? 若請求動態資源,Nginx 將請求轉發?后端服務器。
? 后端服務器由 API ?關(Spring Cloud Gateway)先接收請求,再根據業務轉發?具體微服務處 理,可能是開發?員根據實際項?新增的業務服務,也可能是腳?架項?本?提供的微服務。
? Nacos 作為服務注冊與發現中?,可準確轉發請求?對應微服務。
? Nacos 作為配置中?,各服務啟動時相關配置從Nacos拉取。
? 業務處理時,如果需要使?公共sdk提供的相關功能可以直接使?。
? 業務處理時,后端服務可能調?其他微服務,如 Portal 調?File服務,借助 openfeign實現。
? 業務處理時,后端服務可能調?第三?服務,腳?架項?提供第三?服務集成?案。(如:微信登錄、阿?云短信、騰訊地圖等)
? 業務處理時,后端服務可能借助存儲服務完成相關業務,腳?架項?提供相關存儲機制集成?案。(如:Mysql、Redis、RabbitMQ、OSS)
具體一點,就體現在這張圖中
?這就是我們這個微服務腳手架的基礎
組件介紹
序號 | 分類 | 技術組件 | 介紹 |
1 | 后端 | SpringBoot | 快速構建 Spring項?的框架,簡化了 Spring應?的配置和開發過程。 |
2 | 后端 | SpringCloud | 基于Spring Boot的微服務架構?具集,提供微服務架構系統解決?案。 |
3 | 后端 | Redis | ?性能內存鍵值數據庫,常應?于緩存實現?案。 |
4 | 后端 | RabbitMQ | 開源的消息隊列,常?于異步解耦、流量削峰、異步通信等。 |
5 | 后端 | Nacos | 服務發現與注冊中?、配置中?。 |
6 | 后端 | Mysql | 關系型數據庫,?持結構化數據存儲和SQL查詢。 |
7 | 后端 | Mybatis | 持久層開發框架。 |
8 | 后端 | Redisson | 基于Redis的Java客?端,提供分布式鎖、集合等?級功能。 |
9 | 后端 | Caffeine | ?性能的 Java 本地緩存庫。 |
10 | 后端 | Jwt | JSON Web Token ?個輕量級的認證規范。常?于???份認證。 |
11 | 后端 | Nginx | ?性能的 HTTP 服務器和反向代理服務器,常?于負載均衡、靜態資源服務器、反向代理等場景。 |
12 | 運維 | Docker | 容器化平臺。 |
13 | 運維 | Docker Compose | 定義和運?多容器,實現?鍵啟動、管理和編排多容器依賴關系。 |
14 | 第三方 | 阿?云OSS | 阿?云提供的對象存儲服務,?于存儲和管理?量的?結構化數據,如圖?、視頻、?件等。 |
15 | 第三方 | PostMan | API 設計、開發、測試?體化協作平臺。 |
16 | 第三方 | 微信登錄 | |
17 | 第三方 | 騰訊地圖 | |
18 | 第三方 | 阿?云短信 | 阿?云提供的短信服務,允許開發者通過 API 向?機??發送短信。 |
19 | 第三方 | 阿?云容器鏡像倉庫 | 阿?云提供的容器鏡像存儲服務。 |
20 | 第三方 | Gitee | |
21 | 前端 | Vue3 | |
22 | 前端 | Vue-Router | |
23 | 前端 | Pinia | Vue的狀態管理庫。 |
24 | 前端 | Element Plus | 基于Promise的HTTP客?端,?于瀏覽器和Node.js的請求發送。 |
25 | 前端 | Axios | |
26 | 前端 | Vite |
前面是我們的一些想法和準備做好了,我們大致地,會將代碼的文件結構分成三個層次。
微服務結構層次:
1.?程分層:我們將整個?程劃分為三層。
a.第?層:項???程,作為整個項?的根?錄(frameworkjava)。
b.第?層:公共模塊(bite-common)、各個微服務(bite-gateway、bite-file、bite-admin、
bite-portal、bite-mstemplate)。
c.第三層:
i.公共模塊下第三層:基礎通?包(bite-common-core)、通?消息包(bite-common-message)、公?協議(bite-common-domain)、通?安全包(bite-common-security)、各中間件通?包(bite-common-redis)。
ii.各個微服務下第三層:微服務api層(如:bite-file-api)、微服務實現層(如:bite-file-
service)。
2.公?協議:
軟件開發時通信或者數據交換時的遵循的?套規則或約定。 ?如:統?響應數據結構、統?狀態碼這些是不都是前后端在進?通信時所需要遵循的規則。
3.服務劃分對外API和服務實現:
a.服務api:提供外部調?api(通過openFeign實現),和外部調?共享的Bean或者常量等信息的
引?。
b.服務實現:具體業務實現。
4.包組織:
a.微服務中,業務模塊按功能分包。
b.模塊內分controller、domain、mapper、service包。