天天看點

JHipster學習記錄 - 1 JHipster RegistryJHipster Registry介紹JHipster Registry安裝如何使用

https://www.jhipster.tech/jhipster-registry/

JHipster Registry介紹

JHipster Registry有三個作用:

  1. Eureka Server, 為微服務叢集提供服務注冊與發現,并提供http通路的路由和負載均衡功能
  2. Spring Cloud Config server,作為運作時的配置中心
  3. 管理中心,提供了控制台去監控并管理注冊在上面的服務

是以,要使用JHipster來搭建微服務叢集,必須要先搭建一個JHipster Registry

JHipster Registry安裝

安裝部署

非常簡單

  1. 從github克隆到本地:

    git clone https://github.com/jhipster/jhipster-registry.git

  2. 如果本地啟動:

    ./mvnw -Pdev,webpack

  3. 如果打包:

    ./mvnw -Pprod package

    ,然後執行

    java -jar jhipster-registry-<version>.jar --spring.profiles.active=prod

    去運作

注意:啟動時可能會報錯,我把解決方法放在了JHipster大坑集合裡,有需要可以去看看

Spring profile

JHipster Registry是如何使用配置檔案對我們使用者來說是非常重要的

JHipster Registry擁有

dev

以及

prod

兩個不同環境的配置檔案,預設使用的是

dev

與我們一般在

application.yml

裡配置

spring.profiles.active

來指定預設環境不同,JHipster Registry是在項目的啟動類

JHipsterRegistryApp

裡定義的預設環境:

public static void main(String[] args) {
        SpringApplication app = new SpringApplication(JHipsterRegistryApp.class);
        //在這個方法裡設定了預設的環境是dev
        DefaultProfileUtil.addDefaultProfile(app);
        Environment env = app.run(args).getEnvironment();
        logApplicationStartup(env);
    }
           

JHipster Registry是怎麼作為配置中心的呢?

JHipster Registry除使用

src/main/resources

檔案夾下的配置檔案外,還使用了

composite

配置檔案(也是yml格式的配置檔案),該檔案就是實作配置中心的關鍵

composite

配置檔案在不同的環境下存放的地方不同(這裡建議打開項目的目錄去檢視)

  • dev環境:本地讀取,預設放在項目根目錄下的

    central-config

    檔案夾下
  • prod環境:通過git讀取,預設在

    https://github.com/jhipster/jhipster-registry-sample-config

我們可以從

central-config

檔案夾下看到,裡面已經有一個

application.yml

檔案了,這是JHipster Registry給的初始預設檔案。我們自己可以往

central-config

檔案夾下裡面加

yml

檔案來添加自己的配置

注意:

  1. 那如果想更改

    composite

    配置檔案的存放位址怎麼辦呢?原來JHipster Registry把

    composite

    配置檔案的設定放在了

    src/main/resources

    目錄下的bootstrap.yml (prod環境為bootstrap-prod.yml)裡
  2. 之前提到,

    composite

    配置檔案的預設目錄是在項目根目錄下的

    central-config

    檔案夾中,是以如果是打

    jar

    包再啟動且指定

    --spring.profiles.active=dev

    時,那麼就要在

    jar

    包同一目錄下建一個

    central-config

    檔案夾
#截取一段dev環境的例子
cloud:
    config:
      server:
        bootstrap: true
        #具體就是這裡了
        composite:
          - type: native
            search-locations: file:./central-config
           

如何使用

預設端口是8761,是以直接通路

http://localhost:8761/

即可,會出現控制台了

服務注冊與發現

很簡單,控制台首頁能看到相關資訊

配置中心

如圖,點選右上角Configuration - Cloud config

JHipster學習記錄 - 1 JHipster RegistryJHipster Registry介紹JHipster Registry安裝如何使用

就會進入配置資訊的頁面

JHipster學習記錄 - 1 JHipster RegistryJHipster Registry介紹JHipster Registry安裝如何使用

這裡要講一下的是,這裡的配置資訊,顯示的就是之前講的

composite

配置檔案裡的内容,

任何注冊到注冊中心的服務,都會拿到這裡的配置去覆寫掉自己的相同配置。例如,app_1 在自己的配置檔案裡自定義了一個屬性

test.name

值為

v1

,然後JHipster Registry裡也在

composite

配置檔案裡定義了一個

test.name

值為

v2

,那麼app_1 在使用這個值時,實際上值是

v2

也可以添加

appname-profile.yml

這樣名字的

composite

配置檔案(放在

composite

配置檔案的目錄下,例如dev環境就放在

central-config

檔案夾裡),這裡的

appname

指的是服務名稱,

profile

指的是環境名,例如一個名為

studentService

的服務的

dev

環境的配置檔案,就是

studentService-dev.yml

。 這個配置檔案的作用是,它隻會被

studentService

這個服務在dev環境下所讀取到。而預設的application.yml(注意,指的是

composite

預設的配置檔案,而不是springboot的那個)是所有服務公用的