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、租戶管理:運(yùn)營(yíng)人員管理所有的租戶創(chuàng)建 2、工作臺(tái):普通用戶常用功能 3、組織管理:組織、崗位、用戶數(shù)據(jù)維護(hù)、重置用戶密碼等 4、資源中心:消息、短信、附件管理 5、流程管理:流程部署、模型管理、流程示例 6、系統(tǒng)設(shè)置:菜單、資源配置、角色管理、給角色綁定用戶、給角色授權(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(多租戶)的無(wú)感解決方案 本項(xiàng)目支持3種常見(jiàn)的租戶解決方案和無(wú)租戶方案,同一套代碼,修改一個(gè)配置即可實(shí)現(xiàn)租戶模式只有切換。 緩存抽象 采用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起步依賴,提供一個(gè)通用接口,可以獲取需要校驗(yàn)表單的規(guī)則,然后前端使用后端返回的規(guī)則, 以后若規(guī)則改變,只需要后端修改即可。 防跨站腳本攻擊(XSS) 通過(guò)過(guò)濾器對(duì)所有請(qǐng)求中的 表單參數(shù) 進(jìn)行過(guò)濾 通過(guò)Json反序列化器實(shí)現(xiàn)對(duì)所有 application/json 類型的參數(shù) 進(jìn)行過(guò)濾 當(dāng)前登錄用戶信息注入器 通過(guò)注解實(shí)現(xiàn)用戶身份注入 在線API 由于原生swagger-ui某些功能支持不夠友好,故采用了國(guó)內(nèi)開(kāi)源的knife4j,并制作了stater,方便springboot用戶使用。 代碼生成器 基于Mybatis-plus-generator自定義了一套代碼生成器, 通過(guò)配置數(shù)據(jù)庫(kù)字段的注釋,自動(dòng)生成枚舉類、數(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ì)受到用戶帶寬和服務(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ā)布。 使用編程語(yǔ)言寫(xiě)的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |
1xps15重裝系統(tǒng)(安裝系統(tǒng))圖文詳細(xì)教程
2Win10系統(tǒng)QQ瀏覽器頁(yè)面總是崩潰怎樣辦!
3一鍵重裝windows10系統(tǒng)圖文詳細(xì)教程
4教你進(jìn)入WindowsXP系統(tǒng)后假死機(jī)的處理辦法
5win10系統(tǒng)電腦zip文件打開(kāi)不了的處理辦法
6筆記本電腦沒(méi)有聲音怎樣辦,本文教您筆記本電腦沒(méi)有...
8電腦系統(tǒng)一鍵自動(dòng)重裝圖文詳細(xì)教程
10電腦無(wú)法開(kāi)機(jī)系統(tǒng)一鍵重裝系統(tǒng)(安裝系統(tǒng))設(shè)置步驟
1深度技術(shù)win10正式版ghost(32位)旗艦......
2番茄花園win10 X86 ghost 標(biāo)準(zhǔn)通......
3番茄花園Win10_Ghost Win10 64......
4雨林木風(fēng) GHOST WIN10 X64 快速裝......
5深度技術(shù)GHOST WIN10 X64 尊貴專業(yè)......
6筆記本W(wǎng)in10系統(tǒng) 64位官方正式版2023年......
7筆記本win10正式版ghost(32位)旗艦免......
8雨林木風(fēng)win10(32位)ghost 修正專業(yè)......