力薦幾個(gè)不錯(cuò)的Spring Cloud微服務(wù)項(xiàng)目

在如今微服務(wù)、分布式大行其道的時(shí)代,懂點(diǎn)相關(guān)的技術(shù)、知識(shí)無疑可以給自己加分,而要是能有一些現(xiàn)成的、與之相關(guān)的實(shí)戰(zhàn)性項(xiàng)目跟著擼,對(duì)于自己而言那將如虎添翼!本文將推薦幾個(gè)相當(dāng)不錯(cuò)的跟Spring Cloud相關(guān)的微服務(wù)項(xiàng)目,幫助大家增長(zhǎng)這方面相關(guān)的技術(shù)!
一、Cloud-Platform
地址:https://gitee.com/geek_qi/cloud-platform
首當(dāng)其沖的當(dāng)屬目前相當(dāng)火熱的開源項(xiàng)目:Cloud-Platform,在Gitee上目前已達(dá)將近16K Star,將近8K 的Forked量。
它是國(guó)內(nèi)首個(gè)基于SpringCloud微服務(wù)化的開發(fā)平臺(tái),具有統(tǒng)一授權(quán)、認(rèn)證后臺(tái)管理系統(tǒng),其中包含具備用戶管理、資源權(quán)限管理、網(wǎng)關(guān)API 管理等多個(gè)模塊,支持多業(yè)務(wù)系統(tǒng)并行開發(fā),可以作為后端服務(wù)的開發(fā)腳手架。
代碼簡(jiǎn)潔,架構(gòu)清晰,適合學(xué)習(xí)和直接項(xiàng)目中使用,核心技術(shù)采用Spring Boot 2.4.1、Spring Cloud (2020.0.0)以及Spring Cloud Alibaba 2.2.4 相關(guān)核心組件,采用Nacos注冊(cè)和配置中心,集成流量衛(wèi)兵Sentinel,前端采用vue-element-admin組件,Elastic Search自行集成;
直接上圖吧!!!







其架構(gòu)摘要簡(jiǎn)單介紹如下:
(1)中臺(tái)化前端
集成d2admin中臺(tái)化前端,優(yōu)化前端架構(gòu)和功能布局,支撐中臺(tái)服務(wù)化的應(yīng)用開發(fā)。
(2)JWT鑒權(quán)
通過JWT的方式來進(jìn)行用戶認(rèn)證和信息傳遞,保證服務(wù)之間用戶無狀態(tài)的傳遞。
(3)監(jiān)控
利用Spring Boot Admin 來監(jiān)控各個(gè)獨(dú)立Service的運(yùn)行狀態(tài);利用Hystrix Dashboard來實(shí)時(shí)查看接口的運(yùn)行狀態(tài)和調(diào)用頻率等。
(4)負(fù)載均衡
將服務(wù)保留的rest進(jìn)行代理和網(wǎng)關(guān)控制,除了平常經(jīng)常使用的node.js、nginx外,SpringCloud系列的zuul和ribbon,可以幫我們進(jìn)行正常的網(wǎng)關(guān)管控和負(fù)載均衡。其中擴(kuò)展和借鑒國(guó)外項(xiàng)目的擴(kuò)展基于JWT的Zuul限流插件,方面進(jìn)行限流。
(5)服務(wù)注冊(cè)與調(diào)用
基于Nacos來實(shí)現(xiàn)的服務(wù)注冊(cè)與調(diào)用,在Spring Cloud中使用Feign, 我們可以做到使用HTTP請(qǐng)求遠(yuǎn)程服務(wù)時(shí)能與調(diào)用本地方法一樣的編碼體驗(yàn),開發(fā)者完全感知不到這是遠(yuǎn)程方法,更感知不到這是個(gè)HTTP請(qǐng)求。
(6)熔斷與流控
集成阿里Sentinel進(jìn)行接口流量控制,通過熔斷和降級(jí)處理避免服務(wù)之間的調(diào)用“雪崩”。
二、SpringBlade微服務(wù)開發(fā)平臺(tái)
地址:https://gitee.com/smallc/SpringBlade
穩(wěn)定生產(chǎn)了三年,經(jīng)歷了從 Camden ->Hoxton -> 2020 的技術(shù)架構(gòu),也經(jīng)歷了從fat jar -> docker ->k8s + jenkins的部署架構(gòu);項(xiàng)目分包明確,規(guī)范微服務(wù)的開發(fā)模式,使包與包之間的分工清晰。
(1)采用前后端分離的模式:
前端開源兩個(gè)框架:Sword (基于 React、Ant Design)、Saber(基于 Vue、Element-UI)
(2)后端采用SpringCloud全家桶,并同時(shí)對(duì)其基礎(chǔ)組件做了高度的封裝,單獨(dú)開源出一個(gè)框架:BladeTool。
BladeTool已推送至Maven中央庫(kù),直接引入即可,減少了工程的臃腫,也可更注重于業(yè)務(wù)開發(fā)。
(3)集成Sentinel從流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
(4)注冊(cè)中心、配置中心選型Nacos,為工程瘦身的同時(shí)加強(qiáng)各模塊之間的聯(lián)動(dòng)。
(5)使用Traefik進(jìn)行反向代理,監(jiān)聽后臺(tái)變化自動(dòng)化應(yīng)用新的配置文件。
(6)極簡(jiǎn)封裝了多租戶底層,用更少的代碼換來拓展性更強(qiáng)的SaaS多租戶系統(tǒng)。
(7)借鑒OAuth2,實(shí)現(xiàn)了多終端認(rèn)證系統(tǒng),可控制子系統(tǒng)的token權(quán)限互相隔離。
(8)借鑒Security,封裝了Secure模塊,采用JWT做Token認(rèn)證,可拓展集成Redis等細(xì)顆粒度控制方案。








三、Spring-Cloud-Shop
地址:https://github.com/SiGuiyang/spring-cloud-shop
Spring Cloud 版分布式電商項(xiàng)目,全力打造頂級(jí)多模塊,高可用,高擴(kuò)展電商項(xiàng)目
設(shè)計(jì)此項(xiàng)目是為了進(jìn)一步學(xué)習(xí)Spring Cloud 技術(shù)棧。從項(xiàng)目實(shí)戰(zhàn)深入Spring Cloud 各個(gè)微服務(wù)的解決方案,因此采用最常見的電商業(yè)務(wù)作為練手項(xiàng)目。
目前項(xiàng)目使用分庫(kù)設(shè)計(jì)方案,不同的模塊依賴不同的數(shù)據(jù)庫(kù)實(shí)例
(1)營(yíng)銷中心:pager_activity
(2)授權(quán)中心:pager-auth
(3)商品中心:pager_goods
(4)訂單中心:pager_order
(5)數(shù)據(jù)中心:pager_shop
(6)風(fēng)控中心:pager-risk
(7)后臺(tái)登陸采用oauth2.0授權(quán),支持密碼登陸,授權(quán)碼登陸,短信驗(yàn)證碼登陸
注冊(cè)中心與配置中心已使用alibabanacos。



總結(jié):
好了,本文就介紹到這里吧,希望諸位可以認(rèn)真看一看、瞧一瞧debug精心且煞費(fèi)一番苦心整理的開源項(xiàng)目吧,希望對(duì)諸位有所幫助!學(xué)習(xí)期間有任何問題都可以加我微信與我溝通交流!!!
如果本文對(duì)你有幫助,請(qǐng)關(guān)注公眾號(hào),并動(dòng)動(dòng)手指收藏、點(diǎn)贊、以及轉(zhuǎn)發(fā)哦!!!
