春の雲の設定分散構成の研究ノート

構成サービス

以下は、私の研究ノートで

映像を学ぶ参照B駅https://www.bilibili.com/video/av93813318?p=74

まず、なぜ配布しているコンフィギュレーション・センター

単一のサブサービスに分割アプリケーション・サービスは、各サービスの比較的小さな粒子サイズは、とてもシステムサービスの多くが表示されます。また、各サービスは各マイクロサービスはapplication.ymlでなければならないことを意味する必要な設定情報を、持っている、この構成では、それは非常に面倒です。したがって、集中、動的な構成管理機能が不可欠です。

春の雲はCONFIGSERVERが一元この問題を解決するには、設定ファイルを管理することができます提供します。

各サービスは、マイクロ物流センターは、変更を行う際のgitリポジトリ設定ファイル、設定されている、我々は地元の倉庫に同期して、コンフィギュレーション・センターを更新することができている、あなたは、システム全体の構成を更新達成することができます。

分散構成の中心部だけでなく、スタンドアロンのマイクロサービスアプリケーション。

第二に、エンコード操作

設定ファイルを変更するには2.1アナログのGithubリポジトリ運用・保守担当者

自分のGithubのアカウントで新しい倉庫に作成され、gitの倉庫にコンフィギュレーションファイルをアップロードします。

configure gitのに良いアイデアを確保するために取られます。

参照することができますhttps://www.cnblogs.com/hkgov/p/7694101.htmlを

2.2依存性

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

2.3コンフィギュレーションファイル

server:
  port: 3344
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/Zzwenm/spring-cloud-config.git  #github上面的git仓库
      #搜索目录
          search-paths:
            - springcloud-config
      #读取分支
      label: master
#注册到eureka
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

2.4スタートクラス

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

第三に、テスト

コンフィグ・サーバ設定-dev.ymlファイルを引っ張って、リポジトリのmasterブランチをgitの

3.1ユーレカ・サーバー、設定、サーバの起動

3.2アクセス

URLを入力します。ローカルホスト:3344 /マスター/ configの-dev.yml

あなたは春の雲の設定マイクロサービスによってgithubのから設定内容を得ることができることを証明した成功した訪問。

道路Configをサーバーの右サイドからのこの時間は、オープンしました。

第四には、コンフィギュレーションは、ルールを読みます

  • 最初の
/{label}/{application}-{profile}.yml
{label} : git分支
{application} - {profile} : config-dev

 例如 读取master分支下的config-test配置文件
      /master/config-test.yml
  例如 读取dev分支下的config-dev配置文件
      /dev/config-dev.yml
  • 第2
/{application}-{profile}.yml

この場合、現在の設定がスプライスさ最初のラベルの読み取りに設定されている読み出します。

  • 第三

    の前掲逆の操作
    、文字列のJSONとして読み取りモード
/{application}/{profile}[/{label}]

例如:
master下的config-dev.yml文件
/config/dev/master

V.クライアント操作

5.1輸入依存関係

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

5.2コンフィギュレーションファイルbootstrap.yml

なぜbootstrap.yml

application.ymlユーザレベルのリソースの設定項目。

bootstrap.ymlは、システムレベル、より高い優先度です。

bootstrap.yml:

server:
  port: 3355
spring:
  application:
    name: config-client
  cloud:
    #config客户端配置
    config:
      label: master #分支
      name: config  #配置文件名称
      profile: dev  #配置文件后缀名称
      uri: http://localhost:3344 #配置中心地址
      #以上 为 从http://localhost:3344 master分支读取config-dev.yml配置文件
#注册到eureka
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

5.3マスター・ブート・クラス

@EnableEurekaClient
@SpringBootApplication
public class EurekaConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaConsumerApplication.class, args);
    }

}

5.4コントローラ

コンフィグサーバRESTインターフェイスが露出設定情報の形であるので、私たちはスタイルで、残りの設定情報を読み取ることができます。

設定ファイルconfig.info設定ファイルを読み込むことで判断するかどうかを正常に読み込まれました。gitの中に設定-dev.yml binファイルが存在しconfig.infoので

ConfigClientController:

@RestController
public class ConfigClientController {
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/configInfo")
    public String getConfigInfo(){
        return configInfo;
    }
}

5.5テストを開始します。

5.6アクセスはlocalhost:3355 / configInfo

アクセス成功はGithubのを通じて、構成情報を取得するために、クライアントアクセスCONFIGSERVERの実現に達成しました

おすすめ

転載: www.cnblogs.com/Zzwena/p/12536925.html