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