JHipster生成微服務架構的應用棧(五)- 容器編排示例

本系列文章演示如何用JHipster生成一個微服務架構風格的應用棧。
環境需求:安裝好JHipster開發環境的CentOS 7.4(參考這裏
應用棧名稱:appstack
認證微服務: uaa
業務微服務:microservice1
網關微服務:gateway
實體名:role
主機IP:192.168.220.120html

1 前提條件

1.1 已經生成微服務架構的應用棧

請參考這個系列的前4篇文章。mysql

1.2 安裝Docker Compose

推薦版本:1.21.2
完整安裝說明,請參考這裏sql

1.3 建立一個編排目錄

在命令行,進入appstack目錄,建立一個子目錄docker-compose,如今整個應用棧的目錄結構是這樣的:docker

-- appstack
  |-- uaa
  |-- microservice1
  |-- gateway
  |-- docker-compose

1.4 公共鏡像

預先下載openjdk:8-jre-alpine容器鏡像,能提升後續工做的效率。數據庫

2 構建微服務的鏡像

2.1 構建全部微服務的鏡像

注意:編寫本文時使用的JHipster版本爲5.1.0,鏡像構建命令爲:'dockerfile:build';JHipster '5.4.0'及以後的版本使用新的鏡像構建命令:'jib:dockerBuild'。架構

a, 構建uaa鏡像

進入uaa目錄,輸入命令後回車:app

$ cd uaa/
$ mvn –Pdev clean package dockerfile:build
b, 構建microservice1鏡像

進入microservice1目錄,輸入命令後回車:微服務

$ cd microservice1/
$ mvn –Pdev clean package dockerfile:build
c, 構建gateway鏡像

進入gateway目錄,輸入命令後回車:ui

$ cd gateway/
$ mvn –Pdev clean package dockerfile:build

構建成功後,能夠經過docker命令查看鏡像列表:命令行

$ docker images

3 生成編排文件

進入docker-compose目錄,輸入命令後回車:

$ cd docker-compose/
$ jhipster docker-compose

命令行輸出jhipster:docker-compose命令啓動信息

如今開始問答環節

3.1 Which type of application would you like to deploy?

選擇想要部署的應用類型
這是一個單選題,有2個選項,使用上下鍵切換選項。
由於要部署的是一個微服務架構應用棧,這裏選擇Microservice application

單擊回車繼續。

3.2 Which type of gateway would you like to use?

選擇網關的類型
這是一個單選題,有2個選項,使用上下鍵切換選項。
這裏選擇JHipster gateway based on Netflix Zuul

單擊回車繼續。

3.3 Enter the root directory where your gateway(s) and microservices are located

輸入須要部署的網關和業務微服務的位置
這是一個相對於docker-compose的相對路徑,默認路徑是../,這也是以前生成的網關和業務微服務以及認證微服務的位置。

單擊回車繼續。

3.4 Which applications do you want to include in your configuration?

選擇須要加入編排配置文件的微服務
這是一個多選題,使用上下鍵切換選項,使用空格鍵選中選項,使用a鍵全選,使用i鍵取消全選。
這裏選擇所有的微服務。

單擊回車繼續。

3.5 Do you want to setup monitoring for your applications ?

選擇是否須要啓動監控組件
這是一個單選題,有3個選項,使用上下鍵切換選項。
簡單起見,選擇No

單擊回車繼續。

3.6 Enter the admin password used to secure the JHipster Registry

輸入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                          # 加入端口映射配置
把Profile配置中的prod改爲dev
gateway-app:
    image: gateway
    environment:
        - SPRING_PROFILES_ACTIVE=dev,swagger    # 若是這裏是prod,改爲dev

檢查全部鏡像的Tag是否和本地的鏡像一致

特別是mysql和jhipster-registry這2個鏡像的Tag,這樣避免啓動容器的時候,臨時去下載鏡像。

4 經過容器編排啓動微服務應用棧

進入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命令

$ docker-compose scale microservice1=5     # 將microservice1的容器實例擴展到5個
$ docker-compose stop                      # 中止全部編排中的容器
$ docker-compose down                      # 中止而且刪除全部編排中的容器

系列文章

JHipster生成微服務架構的應用棧(一)- 準備工做
JHipster生成微服務架構的應用棧(二)- 認證微服務示例
JHipster生成微服務架構的應用棧(三)- 業務微服務示例
JHipster生成微服務架構的應用棧(四)- 網關微服務示例
JHipster生成微服務架構的應用棧(五)- 容器編排示例

相關文章
相關標籤/搜索