本系列文章演示如何用JHipster生成一個微服務架構風格的應用棧。
環境需求:安裝好JHipster開發環境的CentOS 7.4(參考這裏)
應用棧名稱:appstack
認證微服務: uaa
業務微服務:microservice1
網關微服務:gateway
實體名:role
主機IP:192.168.220.120html
請參考這個系列的前4篇文章。mysql
推薦版本:1.21.2
完整安裝說明,請參考這裏sql
在命令行,進入appstack目錄,建立一個子目錄docker-compose
,如今整個應用棧的目錄結構是這樣的:docker
-- appstack |-- uaa |-- microservice1 |-- gateway |-- docker-compose
預先下載openjdk:8-jre-alpine容器鏡像,能提升後續工做的效率。數據庫
注意:編寫本文時使用的JHipster版本爲5.1.0
,鏡像構建命令爲:'dockerfile:build';JHipster '5.4.0'及以後的版本使用新的鏡像構建命令:'jib:dockerBuild'。架構
進入uaa目錄,輸入命令後回車:app
$ cd uaa/ $ mvn –Pdev clean package dockerfile:build
進入microservice1目錄,輸入命令後回車:微服務
$ cd microservice1/ $ mvn –Pdev clean package dockerfile:build
進入gateway目錄,輸入命令後回車:ui
$ cd gateway/ $ mvn –Pdev clean package dockerfile:build
構建成功後,能夠經過docker命令查看鏡像列表:命令行
$ docker images
進入docker-compose目錄,輸入命令後回車:
$ cd docker-compose/ $ jhipster docker-compose
選擇想要部署的應用類型
這是一個單選題,有2個選項,使用上下鍵切換選項。
由於要部署的是一個微服務架構應用棧,這裏選擇Microservice application
。
單擊回車繼續。
選擇網關的類型
這是一個單選題,有2個選項,使用上下鍵切換選項。
這裏選擇JHipster gateway based on Netflix Zuul
。
單擊回車繼續。
輸入須要部署的網關和業務微服務的位置
這是一個相對於docker-compose的相對路徑,默認路徑是../
,這也是以前生成的網關和業務微服務以及認證微服務的位置。
單擊回車繼續。
選擇須要加入編排配置文件的微服務
這是一個多選題,使用上下鍵切換選項,使用空格鍵選中選項,使用a鍵全選,使用i鍵取消全選。
這裏選擇所有的微服務。
單擊回車繼續。
選擇是否須要啓動監控組件
這是一個單選題,有3個選項,使用上下鍵切換選項。
簡單起見,選擇No
。
單擊回車繼續。
輸入JHipster Registry的admin帳號的密碼
默認值是admin
,這也是以前啓動的JHipster Registry的密碼。
單擊回車繼續。
這個過程一般須要1-2分鐘。
完成後,在目錄下看到全部生成的文件。
打開docker-compose.yml文件
$ vi docker-compose
gateway-mysql: image: mysql:5 environment: - MYSQL_ROOT_PASSWORD=my-secret-pw # 加入數據庫密碼配置 ports: - 32800:3306 # 加入端口映射配置 ...... ...... microservice1-mysql: image: mysql:5 environment: - MYSQL_ROOT_PASSWORD=my-secret-pw # 加入數據庫密碼配置 ports: - 32700:3306 # 加入端口映射配置 ...... ...... uaa-mysql: image: mysql:5 environment: - MYSQL_ROOT_PASSWORD=my-secret-pw # 加入數據庫密碼配置 ports: - 32900:3306 # 加入端口映射配置
gateway-app: image: gateway environment: - SPRING_PROFILES_ACTIVE=dev,swagger # 若是這裏是prod,改爲dev
特別是mysql和jhipster-registry這2個鏡像的Tag,這樣避免啓動容器的時候,臨時去下載鏡像。
進入docker-compose目錄,輸入命令後回車:
$ docker-compose up -d
全部容器和容器內的微服務啓動,須要大概3-5分鐘。
啓動完成後,就能夠訪問JHipster Registry和gateway的Web UI,默認用戶名和密碼都是admin
:
http://192.168.220.120:8761 http://192.168.220.120:8080
$ docker-compose scale microservice1=5 # 將microservice1的容器實例擴展到5個 $ docker-compose stop # 中止全部編排中的容器 $ docker-compose down # 中止而且刪除全部編排中的容器
JHipster生成微服務架構的應用棧(一)- 準備工做
JHipster生成微服務架構的應用棧(二)- 認證微服務示例
JHipster生成微服務架構的應用棧(三)- 業務微服務示例
JHipster生成微服務架構的應用棧(四)- 網關微服務示例
JHipster生成微服務架構的應用棧(五)- 容器編排示例