掃碼關註
「
後端架構師
」,選擇
「
星標
」
公眾號
重磅幹貨,第一時間送達!
責編:架構君 | 來源:GitHub猿 整理
上一篇好文:
大家好,我是後端架構師。
我 今天 ,推薦一個系統計畫。猿哥第一次使用就有點上頭,愛不釋手,必須要推薦給大家。
上次是誰要的系統計畫 啊,猿哥幫你找到 了。
這是我目前見過最好的系統計畫。功能完整,程式碼結構清晰。值得推薦。
📚 計畫介紹
最近猿哥在逛網站的時候發現一個不錯的開源計畫,猿哥覺得不錯,值得拿出來和大家分享下。
🔥本計畫系統是一款是基於Jdk11 + SpringCloud + SpringBoot的微服務快速開發平台,其中的可配置的SaaS功能尤其閃耀, 具備RBAC功能、閘道器統一鑒權、Xss防跨站攻擊、自動程式碼生成、多種儲存系統、分布式事務、分布式定時任務等多個模組,支持多業務系統並列開發, 支持多服務並列開發,可以作為後端服務的開發腳手架。程式碼簡潔,註釋齊全,架構清晰,非常適合學習和企業作為基礎框架使用。。擴充套件:
本計畫亮點功能介紹:
服務註冊&發現與呼叫:
基於Nacos來實作的服務註冊與發現,使用使用Feign來實作服務互調, 可以做到使用HTTP請求遠端呼叫時能與呼叫本地方法一樣的編碼體驗,開發者完全感知不到這是遠端方法,更感知不到這是個HTTP請求。
負載均衡:
將服務保留的rest進行代理和閘道器控制,除了平常經常使用的node.js、nginx外,Spring Cloud系列的gateway 和 loadbalancer 可以幫我們進行正常的閘道器管控和負載均衡。
RBAC:
透過JWT生成token,儲存使用者基本資訊,並自研許可權配置、鑒權方案。
熔斷機制:
因為采取了服務的分布,為了避免服務之間的呼叫「雪崩」,采用了Sentinel的作為熔斷器,避免了服務之間的「雪崩」。
監控:
利用Spring Boot Admin 來監控各個獨立服務的執行狀態、健康情況。
鏈路呼叫監控:
同時實作了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-jobs進行了功能增強。(如:指定時間發送任務、執行器和排程器合並計畫、多資料來源)
分布式事務
整合了阿裏的分布式事務中介軟體:seata,以 高效 並且對業務 0侵入 的方式,解決 微服務 場景下面臨的分布式事務問題。
跨表、跨庫、跨服務的關聯數據自動回顯
用於解決跨表、跨庫、跨服務分頁數據的內容或單個物件的內容 回顯關聯數據之痛, 支持對靜態數據內容(數據字典)、動態主鍵數據進行自動回顯。
灰度釋出
為了解決頻繁的服務更新上線,版本回退,快速叠代,公司內部協同開發,本計畫采用修改 loadbalancer 的負載均衡策略來實作來灰度釋出。
技術棧/版本介紹:
所涉及的相關的技術有:
JSON序列化:Jackson
訊息佇列: RabbitMQ
緩存:Redis
資料庫:MySQL 5.7.9 或者 MySQL 8
定時器:采用xxl-jobs計畫進行二次改造
前端:vue2 + element-ui / vue3 + ant design vue
持久層框架:Mybatis-plus
程式碼生成器:基於Mybatis-plus-generator自訂
API閘道器:Gateway
服務註冊&發現和配置中心: Nacos
服務消費:OpenFeign
負載均衡:Ribbon
服務熔斷:Sentinel
計畫構建:Maven
分布式事務:seata
分布式系統的流量防衛兵:Sentinel
監控:spring-boot-admin
鏈路呼叫跟蹤:SkyWalking
另外,搜尋公眾號頂級演算法後台回復「微信」,獲取一份驚喜禮包。
檔伺服器:FastDFS 5.0.5/阿裏雲OSS/本地儲存/MinIO
Nginx
部署方面:
伺服器:CentOS
Jenkins
Docker
Kubernetes
本計畫是lamp計畫的其中一個計畫,她基於jdk11/jdk8 + SpringCloud + SpringBoot 開發, 她是一個微服務中後台快速開發平台,可以透過外掛程式無縫切換是否啟用 SaaS模式 、透過配置切換SaaS模式采用獨立資料庫模式還是欄位模式。
她具備SaaS模式切換、完備的RBAC功能、閘道器統一鑒權、灰度釋出、數據許可權、可插拔緩存、統一封裝緩存的key、表單校驗前後端統一驗證、字典數據自動回顯、Xss防跨站攻擊、自動生成前後端程式碼、多種儲存系統、分布式事務、分布式定時任務等多個功能和模組, 支持多業務系統並列開發, 支持多服務並列開發,是中後台系統開發腳手架的最佳選擇。程式碼簡潔,註釋齊全,架構清晰,非常適合學習和企業作為基礎框架使用。
核心技術采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中介軟體。希望能努力打造一套從 Web基礎框架 - 分布式微服務架構 - 持續整合 - 系統監測 的解決方案。本計畫旨在實作基礎框架能力,不涉及具體業務。
燈燈(簡稱燈, 英文名:lamp),他是一個計畫的統稱,由"工具集"、"後端"、"前端"組成,包含以下幾個子計畫:
工具集
計畫 | 備註 |
lamp-util | 核心工具集 |
lamp-generator | 程式碼生成器 |
lamp-job | 分布式定時排程器 |
後端
計畫 | 備註 |
lamp-cloud | SpringCloud(微服務)版 |
lamp-boot | SpringBoot(單體)版 |
lamp-samples | 微服務版範例:常用範例 |
前端
計畫 | 備註 |
lamp-web-plus(強烈推薦!) | 基於 vue-vben-admin (vue 3 + ant design vue 2) |
lamp-web | 基於 vue-admin-element (element-ui) |
新手小白高效的提問
當你提出問題的時候,請先表明你已經做了上述的努力;這將有助於樹立你並不是一個不勞而獲且浪費別人的時間的提問者。如果你能一並表達在做了上述努力的過程中所學到的東西會更好,因為群主或者群裏面其他大神更樂於回答那些表現出能從答案中學習的人的問題。另外,搜尋公眾號Linux就該這樣學後台回復「git書籍」,獲取一份驚喜禮包。
用清晰、正確、精準並語法正確的語句,說清楚采用的什麽版本(4.x還是3.x)、那個計畫(boot還是cloud)、修改了什麽程式碼、修改了什麽配置?
話不在多而在精
問問題時,用最準確,最簡單的語言描述清楚問題,而非說一堆廢話,一堆表情。
描述問題癥狀而非你的猜測
清楚明確的表達你的問題以及需求
將報錯資訊截大圖,能看清日誌,看清那個模組,那行程式碼
描述出現問題的步驟,或者功能選單
描述軟體、工具的版本(nacos、idea/Eclipse、seata、mysql 等版本不同可能導致報錯)
若基於本計畫進行了源碼、配置或者包名的修改導致的一些bug,請事先說明大概改了那些東西。
去掉無意義的提問句
避免用無意義的話結束提問,例如:
有人能幫我嗎?(請直接詳細說明問題,而非等人回復:我來幫你)
計畫無法啟動怎麽辦?(請直接詳細說明問題,而非等人回復:我來幫你)
群主在嗎?(請直接詳細說明問題,而非等人回復:我來幫你)
有個問題誰能幫幫我?(請直接詳細說明問題,而非等人回復:我來幫你)
為什麽更新程式碼後無法啟動了啊?(請確保db和nacos裏面的配置使用了最新版本)
這段時間有更新資料庫指令碼嗎?有更新XX功能嗎?(請看git 送出日誌)
一般用以上方式提問或者咨詢的,一律不予回復。
一般用以上方式提問或者咨詢的,一律不予回復。
一般用以上方式提問或者咨詢的,一律不予回復。
盡可能清晰的描述讓群主如何復現,必要時提供大而全的截圖,你修改之後的配置等;而非一直強調計畫啟動不了咋辦?本地好的生產卻不行?等等這些無意義的話語。
如果得不到回答
如果仍得不到回答,請不要以為我們覺得無法幫助你。有時只是看到你問題的人不知道答案罷了。沒有回應不代表你被忽視,雖然不可否認這種差別很難區分。
為什麽我問的問題沒人回答,別人問的問題,卻很快有人響應?
99% 是因為說了一堆廢話,又沒有描述清楚問題,別人無從下手,請參考上面幾條,描述清楚問題
1% 是因為你的問題沒人會
功能演示:
預覽 | 預覽 |
---|---|
最後,想學習這個計畫的可以檢視計畫地址:
計畫源碼,怎麽領取?
源碼獲取
掃碼下方二維碼,後台回復【SaaS】即可獲取所有系統
歡迎有需要的同學試試,如果本文對您有幫助,也請幫忙點個 贊 + 在看 啦!❤️
在 還有更多優質計畫系統學習資源,歡迎分享給其他同學吧!
你還有什麽想要補充的嗎?
最後,再次推薦下我們的AI星 球 :
為了跟上AI時代我幹了一件事兒,我建立了一個知識星球社群:ChartGPT與副業。想帶著大家一起探索 ChatGPT和新的AI時代 。
有很多小夥伴搞不定ChatGPT帳號,於是我們決定,凡是這三天之內加入ChatPGT的小夥伴,我們直接送一個正常可用的永久ChatGPT獨立帳戶。
不光是增長速度最快,我們的星球品質也絕對經得起考驗,短短一個月時間,我們的課程團隊釋出了 8個專欄、18個副業計畫 :
簡單說下這個星球能給大家提供什麽:
1、不斷分享如何使用ChatGPT來完成各種任務,讓你更高效地使用ChatGPT,以及副業思考、變現思路、創業案例、落地案例分享。
2、分享ChatGPT的使用方法、最新資訊、商業價值。
3、探討未來關於ChatGPT的機遇,共同成長。
4、幫助大家解決ChatGPT遇到的問題。
5、 提供一整年的售後服務,一起搞副業
星球福利:
1、加入星球4天後,就送ChatGPT獨立帳號。
2、邀請你加入ChatGPT會員交流群。
3、贈送一份完整的ChatGPT手冊和66個ChatGPT副業賺錢手冊。
其它福利還在籌劃中... 不過,我給你大家保證,加入星球後,收獲的價值會遠遠大於今天加入的門票費用 !
本星球第一期原價 399 ,目前屬於試營運,早鳥價 149 ,每超過50人漲價10元,星球馬上要來一波大的漲價,如果你還在猶豫,可能最後就要以 更高價格加入了 。。
早就是優勢。 建議大家盡早以便宜的價格加入!
歡迎有需要的同學試試,如果本文對您有幫助,也請幫忙點個 贊 + 在看 啦!❤️
在 還有更多優質計畫系統學習資源,歡迎分享給其他同學吧!
PS:如果覺得我的分享不錯,歡迎大家隨手點贊、轉發、在看。
最後給讀者整理了一份BAT大廠面試真題,需要的可掃碼加微信備註:「面試」獲取。
版權申明:內容來源網路,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝!
END
最近面試BAT,整理一份面試資料【Java面試BAT通關手冊】,覆蓋了Java核心技術、JVM、Java並行、SSM、微服務、資料庫、數據結構等等。在這裏,我為大家準備了一份2021年最新最全BAT等大廠Java面試經驗總結。
別找了,想獲取史上最全的Java大廠面試題學習資料
掃下方二維碼回復「面試」就好了
歷史好文:
掃碼關註「後端架構師」,選擇「星標」公眾號
重磅幹貨,第一時間送達
嘿,你在看嗎?