SpringCloud+apollo+elasticsearch+skywalking+zipkin腳手架項目

最近鵬哥在總結目前市面流行的開源項目,努力發現有價值的項目分享給大家。

項目介紹

基於SpringCloud2.0的微服務開發腳手架,整合了spring-security-oauth2、apollo、eureka、feign、hystrix、springcloud-gateway、springcloud-bus等。治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,讓項目開發快速進入業務開發,而不需過多時間花費在架構搭建上。

快速開始

先決條件

首先本機先要安裝以下環境,建議先學習瞭解springboot和springcloud基礎知識。

  • git
  • java8
  • maven

開發環境搭建

可在項目根目錄下執行 ./install.sh 快速搭建開發環境。如要了解具體的步驟,請看如下文檔。

具體步驟如下:

克隆代碼庫: git clone https://github.com/zhoutaoo/SpringCloud.git

安裝公共庫到本地倉庫:

cd common && mvn install
cd auth/authentication-client && mvn install

生成ide配置: mvn idea:idea 並導入對應的ide進行開發,IDE安裝lombok插件(很重要,否則IDE會顯示編譯報錯)

編譯 & 啟動

1.啟動基礎服務:進入docker-compose目錄,執行docker-compose -f docker-compose.yml up 服務名 或單個啟動docker-compose up 服務名

在啟動應用之前,需要先啟動數據庫、緩存、MQ等中間件,可根據自己需要啟動的應用選擇啟動某些基礎組件,一般來說啟動數據庫、redis、rabbitmq即可,其它組件若有需要,根據如下命令啟動即可。

該步驟使用了docker快速搭建相應的基礎環境,需要你對docker、docker-compose有一定了解和使用經驗。(注:請使用阿里的docker鏡像)

SpringCloud+apollo+elasticsearch+skywalking+zipkin腳手架項目

2.啟動配置中心:進入docker-compose目錄,執行

#數據庫初使化:
docker-compose -f docker-compose.yml -f docker-compose.config.yml up apollo-db-init
#啟動配置中心應用:
docker-compose -f docker-compose.yml -f docker-compose.config.yml up apollo-portal

該步驟不是必須,若你想使用apollo為配置中心,通過以上命令啟動即可。目前僅demos/producer應用使用了apollo作為配置中心

3.創建數據庫及表

只有部分應用有數據庫腳本,若啟動的應用有數據庫的依賴,請初始化表結構和數據後再啟動應用。

docker方式腳本初使化:進入docker-compose目錄,執行命令 docker-compose up mysql-init

子項目腳本

路徑一般為:子項目/db

如:auth/db 下的腳本,請先執行ddl建立表結構後再執行dml數據初使化

應用腳本

路徑一般為:子項目/應用名/src/main/db

如:demos/producer/src/main/db 下的腳本

4.啟動應用

根據自己需要,啟動相應服務進行測試,cd 進入相關應用目錄,執行命令: mvn spring-boot:run

以下應用都依賴於rabbitmq、eureka-server,啟動服務前請先啟動mq和註冊中心

SpringCloud+apollo+elasticsearch+skywalking+zipkin腳手架項目

5.案例示意圖

以下是一個用戶訪問的的示意圖,用戶請求通過gateway-web應用網關訪問後端應用,通過authorization-server應用登陸授權換取token,請求通過authentication-server應用進行權限籤別後轉發到"您的業務應用"中

authorization-server為授權應用,啟動前請初使化好數據庫。

authentication-server為籤權應用,若有新增接口,請初使化相關權限數據到resources表中。

gateway-admin可動態調整gateway-web的路由策略,測試前請先配置網關的轉發策略。

SpringCloud+apollo+elasticsearch+skywalking+zipkin腳手架項目

6.前端項目

確保gateway-web、organization、authorization-server、authentication-server服務啟動,然後啟動 前端項目,效果如下:

SpringCloud+apollo+elasticsearch+skywalking+zipkin腳手架項目

項目地址:

後端地址:https://github.com/zhoutaoo/SpringCloud

前端地址:https://github.com/zhoutaoo/SpringCloud-Admin


分享到:


相關文章: