/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
lamp-cloud是基於jdk11 + SpringCloud(Hoxton.SR10) + SpringBoot(2.3.10.RELEASE) 的微服務快速開發平台,其中的可配置的SaaS功能尤其閃耀, 具備RBAC功能、網關統一鑒權、Xss防跨站攻擊、自動代碼生成、多種存儲係統、分布式事務、分布式定時任務等多個模塊,支持多業務係統並行開發, 支持多服務並行開發,可以作為後端服務的開發腳手架。代碼簡潔,注釋齊全,架構清晰,非常適合學習和企業作為基礎框架使用。
服務注冊&發現與調用:
基於Nacos來實現的服務注冊與發現,使用使用Feign來實現服務互調, 可以做到使用HTTP請求遠程調用時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。
負載均衡:
將服務保留的rest進行代理和網關控製,除了平常經常使用的node.js、nginx外,Spring Cloud係列的zuul和ribbon,可以幫我們進行正常的網關管控和負載均衡。其中擴展和借鑒國外項目的擴展基於JWT的Zuul限流插件,方麵進行限流。
服務鑒權:
通過JWT的方式來加強服務之間調度的權限驗證,保證內部服務的安全性。
熔斷機製:
因為采取了服務的分布,為了避免服務之間的調用“雪崩”,采用了Hystrix的作為熔斷器,避免了服務之間的“雪崩”。
監控:
利用Spring Boot Admin 來監控各個獨立Service的運行狀態;利用turbine來實時查看接口的運行狀態和調用頻率;通過Zipkin來查看各個服務之間的調用鏈等。
鏈路調用監控:
同時實現了Zipkin和SkyWalking作為本項目的全鏈路性能監控, 從整體維度到局部維度展示各項指標,將跨應用的所有調用鏈性能信息集中展現,可方便度量整體和局部性能,並且方便找到故障產生的源頭,生產上可極大縮短故障排除時間。
數據權限
利用基於Mybatis的DataScopeInnerInterceptor攔截器實現了數據權限功能
SaaS(多租戶)的無感解決方案
本項目支持3種常見的租戶解決方案和無租戶方案,同一套代碼,修改一個配置即可實現租戶模式隻有切換。
緩存抽象
采用CacheOps操作緩存,內置2種實現:Caffeine、 Redis,可以讓項目應急時在無Redis環境正常運行
優雅的Bean轉換
采用Dozer、BeanUtil等組件來對 DTO、DO、PO等對象的優化轉換
前後端統一表單驗證
嚴謹的表單驗證通常需要 前端+後端同時驗證, 但傳統的項目,均隻能前後端各做一次檢驗, 後期規則變更,又得前後端同時修改。 故在hibernate-validator的基礎上封裝了lamp-validator-starter起步依賴,提供一個通用接口,可以獲取需要校驗表單的規則,然後前端使用後端返回的規則, 以後若規則改變,隻需要後端修改即可。
防跨站腳本攻擊(XSS)
通過過濾器對所有請求中的 表單參數 進行過濾
通過Json反序列化器實現對所有 application/json 類型的參數 進行過濾
當前登錄用戶信息注入器
通過注解實現用戶身份注入
在線API
由於原生swagger-ui某些功能支持不夠友好,故采用了國內開源的knife4j,並製作了stater,方便springboot用戶使用。
代碼生成器
基於Mybatis-plus-generator自定義了一套代碼生成器, 通過配置數據庫字段的注釋,自動生成枚舉類、數據字典注解、SaveDTO、UpdateDTO、表單驗證規則注解、Swagger注解等。
定時任務調度器:
基於xxl-job進行了功能增強。(如:指定時間發送任務、執行器和調度器合並項目、多數據源)
大文件/斷點/分片續傳
前端采用webupload.js、後端采用NIO實現了大文件斷點分片續傳,啟動Eureka、Zuul、File服務後,直接打開docs/chunkUploadDemo/demo.html即可進行測試。 經測試,本地限製堆棧最大內存128M啟動File服務,5分鍾內能成功上傳4.6G+的大文件,正式服耗時則會受到用戶帶寬和服務器帶寬的影響,時間比較長。
分布式事務
集成了阿裏的分布式事務中間件:seata,以 高效 並且對業務 0侵入 的方式,解決 微服務 場景下麵臨的分布式事務問題。
跨表、跨庫、跨服務的關聯數據自動回顯
用於解決跨表、跨庫、跨服務分頁數據的屬性或單個對象的屬性 回顯關聯數據之痛, 支持對靜態數據屬性(數據字典)、動態主鍵數據進行自動注入。
灰度發布
為了解決頻繁的服務更新上線,版本回退,快速迭代,公司內部協同開發,本項目采用修改ribbon的負載均衡策略來實現來灰度發布。
1、租戶管理:運營人員管理所有的租戶創建
2、工作台:普通用戶常用功能
3、組織管理:組織、崗位、用戶數據維護、重置用戶密碼等
4、資源中心:消息、短信、附件管理
5、流程管理:流程部署、模型管理、流程示例
6、係統設置:菜單、資源配置、角色管理、給角色綁定用戶、給角色授權菜單和資源、字典、地區、係統參數、操作日誌、登錄日誌、應用管理等
7、網關設置:限流和阻止訪問
8、開發者管理:定時任務、接口文檔、注冊&配置中心、服務監控、數據庫監控、zipkin監控、SkyWalking監控