Jhipster建立微服務【0】——踩坑
Jhipster與微服務
什麼是Jhipster?
JHipster is a development platform to generate, develop and deploy Spring Boot + Angular/React Web applications and Spring microservices.
Jhipster微服務架構圖:
Jhipster通過使用NETFLX OSS(NETFLIX Open Source Software)+Spring boot Spring Cloud+Docker的技術實現微服務技術棧。
使用ELK(elastic search+ logstash + kibana)實現日誌收集、處理、視覺化。
微服務部分可拆件為以下部分:
註冊中心
Jhipster可以使用 Jhipster Registry或者consul做為服務註冊中心。
閘道器
當用戶通過瀏覽器網站的時候首先經過閘道器,閘道器提供了使用者訪問的WEB APP,反向代理和許可權管理功能,使用者請求通過反向代理進入要具體的微服務中。
UAA
訪問許可權控制模組。
微服務
對外提供各種服務的微服務。
基礎環境配置
本文介紹mac下環境配置,當然也可選擇在Linux作業系統或者Windows系統下進行。
安裝nodejs
brew install [email protected]8
安裝yarn
brew install yarn
安裝yeoman
npm install -g yo
安裝jhipster
#安裝的版本是v5.0.0-beta.1
npm install -g [email protected]
受我國特殊的網路環境的影響,一些WEB前端的安裝包是不能直接下載的,需要對npm 和 yarn 設定淘寶映象。
建立微服務工程
建立如下資料夾:
└── micro-services ├── gateway ├── registry ├── service1 ├── service2 └── uaa
建立註冊中心
Jhipster官方提供註冊中心的原始碼程式碼,可以直接執行。
git clone https://github.com/jhipster/jhipster-registry.git ./registry # clone程式碼到本地資料夾
yarn install # 安裝前端依賴
yarn start # 編譯執行Angular專案
./mvnw # 執行後臺
安裝依賴的時候會出現node和yarn的版本不相容,本環境的node版本號是v8.11.2,yarn的版本為1.7.0,所以需要修改package.json。同時需要將node-sass的版本號修改
"engines": {
"node": ">=8",
"yarn": ">1.3.2"
}
在實驗到的時候將node升級為v10會出現編譯錯誤,所以不建議升級到最新版本。
建立uaa
直接在./gateway目錄下執行jhipster命令,應用型別選擇JHipster UAA server,如下圖所示:
建立完成後執行如下命令:
#安裝依賴
yarn install
# 編譯啟動後端後端
./mvnw
執行後即可在註冊中心(http://localhost:8761) 中的Instance Registed中看到.
建立閘道器
直接在/gateway目錄下執行jhipster命令,應用型別選擇Microservice gateway
建立完成後執行如下命令:
#安裝依賴
yarn install
# 編譯啟動前端工程
yarn start
# 編譯啟動後端工程
./mvnw
建立服務
直接在/service1和/service2目錄下分別執行jhipster命令,應用型別選擇Microservice application,注意各個服務的埠號不應該相同。專案生成好之後直接執行./mvnw
即可啟動專案
最終運行了uaa、閘道器和兩個微服務專案之後可在註冊中心中四個註冊到註冊中心的四個例項:
測試
可以在service1中建立實體book,在service2中建立實體author,檢視在一個閘道器中是否能夠呼叫兩個服務。
可以在閘道器的API文件中檢視到所有服務的文件REST API文件:
最後
以後會寫一系列關於使用Jhipster建立、開發和部署文章,有興趣的朋友可以關注微信公眾賬號訂閱。