Nacos 共有構成

この記事では、Nacos を構成センターとして使用する場合の共有構成の読み取り方法を紹介します。

私の環境

  • ウィンドウズ10
  • JDK8
  • SpringCloud:Finchley.RELEASE
  • SpringBoot:2.0.4.RELEASE
  • spring-cloud-alibaba-dependencies:0.2.2.RELEASE
  • Nacos サーバー:1.0.1

この記事のプロジェクト Demo は、前回の記事の集計プロジェクトを引き続き使用しますNacos. 以前の環境がない場合は、ソース コードのアドレスからダウンロードできます。

シーンの説明

プロジェクト内のサービスの数が増えると、それに応じて構成ファイルが増加します. 複数の構成ファイルに同じ構成が存在することになります. その後、プロジェクト内の各サービスの共有構成ファイルとして同じ構成を分離できます. 各サービスは読み取ることができます. Nacos による共有構成

デモを使用して、実現可能かどうかを示しましょう

  • デモ プロジェクト: nacos-config-share
  • 構成ファイル: nacos-config-share.yml
  • 共有構成ファイル: shareconfig1.yml、shareconfig2.yml

プロジェクトを作成

通常通り、集約プロジェクト Nacos の下にサブプロジェクトを作成しnacos-config-share、その pom.xml ファイルは以前のプロジェクトと同じ依存関係にあります.以前のプロジェクトがない場合は、ソースコードのアドレスを参照できます

1. springboot 起動クラスを変更するNacosConfigShareApplication.java

@SpringBootApplication
@EnableDiscoveryClient
@RestController
@RefreshScope
public class NacosConfigShareApplication {
@SpringBootApplication
@EnableDiscoveryClient
@RestController
@RefreshScope
public class NacosConfigShareApplication {

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

    @Value("${nacos.share}")
    private String share;


    @Value("${share.config1}")
    private String shareConfig1;

    @Value("${share.config2}")
    private String shareConfig2;

    @RequestMapping("/getValue")
    public String getValue() {
        return share;
    }

    @RequestMapping("/getShare1")
    public String getShare1() {
        return shareConfig1;
    }

    @RequestMapping("/getShare2")
    public String getShare2() {
        return shareConfig2;
    }
}


2. プロジェクトの構成ファイルを変更するbootstrap.yml

spring:
  application:
    name: nacos-config-share
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        prefix: ${spring.application.name}
        file-extension: yml
        shared-dataids: shareconfig1.yml,shareconfig2.yml
        refreshable-dataids: shareconfig1.yml,shareconfig2.yml

shared-dataids構成ファイルから、読み取り対象の共有構成ファイルが属性によって指定されDataID指定された共有構成ファイルを使用して複数のファイルが,分離され、自動更新がサポートされていることがわかります。
refreshable-dataids

新しい構成ファイル

ここでは、名前空間に参加せずにデモンストレーションとして使用し、パブリック スペースで直接作成およびテストします。

以下に説明するように、構成ファイルを作成しますnacos-config-share.yml

  • データ ID:nacos-config-share.yml
  • 構成形式:YAML
  • 構成内容:
    server:
        port: 9984
    nacos: 
        share: nacos-config-share
    

共有構成ファイル 1 を作成しますshareconfig1.yml。詳細は次のとおりです。

  • データ ID:shareconfig1.yml
  • 構成形式:YAML
  • 構成内容:
    share: 
        config1: 这里是共享配置文件1
    

共有構成ファイル 1 を作成しますshareconfig2.yml。詳細は次のとおりです。

  • データ ID:shareconfig2.yml
  • 構成形式:YAML
  • 構成内容:
    share: 
        config2: 这里是共享配置文件2
    

作成が成功すると、構成リストは次のようになります。

共有構成

テストを開始

起動が成功した場合は、プロジェクトを直接開始します。ログには次の情報が表示されます。

起動

スタートアップクラスで提供されるインターフェースにアクセスし、共有設定ファイルの値が取得できるかテストする

访问127.0.0.1:9984/getValue,返回:nacos-config-share
访问127.0.0.1:9984/getShare1,返回:这里是共享配置文件1
访问127.0.0.1:9984/getShare2,返回:这里是共享配置文件2

次に、refreshable-dataids構成された自動更新が有効になるかどうかをテストします

Nacos コンソールで共有構成ファイルの値を変更しますshareconfig2.yml这里是共享配置文件2这里是共享配置文件2

編集して保存した後、再度 127.0.0.1:9984/getShare2 を要求し、返された結果を次のように観察します。

共有プロフィール 2 はこちら 共有プロフィール 2 はこちら

上記の返された結果は、構成ファイルでshared-dataidsおよび を指定することによりrefreshable-dataids、共有構成ファイルを読み取り、自動的に更新できることを示しています。

要件の変更

今すぐ読み取りshareconfig3.ymlとファイルを作成したいshareconfig4.ymlが、そのグループがSHARE3_GROUPandであるSHARE4_GROUPとします。つまり、共有構成ファイルがプロジェクト独自の構成ファイル ( ) と同じグループにない場合、上边的例子是全都在DEFAULT_GROUP分组上記の方法を引き続き使用すると、共有構成ファイルを読み取ることができる

この時点で、別の構成を使用できますext-config。これは、ユーザーがカスタマイズして、ロードする構成を指定できます。DataID、Group以及是否自动刷新

そして、複数の設定ファイルの指定をサポートするext-configコレクション ( ) です。List

新しい共有プロファイルを作成する

最初に構成構成ファイルを作成しshareconfig3.ymlshareconfig4.ymlそれらのグループ属性に注意してください

  • データ ID:shareconfig3.yml
  • グループ:SHARE3_GROUP
  • 構成形式:YAML
  • 構成内容:
    share: 
        config3: 这里是共享配置文件3Group:SHARE3_GROUP
    
  • データ ID:shareconfig4.yml
  • グループ:SHARE4_GROUP
  • 構成形式:YAML
  • 構成内容:
    share: 
        config4: 这里是共享配置文件4Group:SHARE4_GROUP
    

次のように成功したページを作成します。

shareconfig34

プロジェクト コードの変更

1.スタートアップ クラスNacosConfigShareApplication.javaに次のコードを追加します。

    @Value("${share.config3}")
    private String shareConfig3;

    @Value("${share.config4}")
    private String shareConfig4;


    @RequestMapping("/getShare3")
    public String getShare3() {
        return shareConfig3;
    }

    @RequestMapping("/getShare4")
    public String getShare4() {
        return shareConfig4;
    }

2. プロジェクト構成ファイルを変更して構成bootstrap.ymlを追加するext-config

spring:
  application:
    name: nacos-config-share
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        prefix: ${spring.application.name}
        file-extension: yml
        shared-dataids: shareconfig1.yml,shareconfig2.yml
        refreshable-dataids: shareconfig1.yml,shareconfig2.yml
        ext-config:
          - data-id: shareconfig3.yml
            group: SHARE3_GROUP
            refresh: true
          - data-id: shareconfig4.yml
            group: SHARE4_GROUP
            refresh: true

テストの開始

プロジェクトが変更された後、次のことがわかります。

  1. プロジェクト自体の nacos 構成ファイルは、デフォルトで読み取られる DEFAULT_GROUP に属します。
  2. shareconfig1.yml、shareconfig2.ymlはDEFAULT_GROUPに属し、shared-dataids指定して読み込む
  3. 非DEFAULT_GROUPshareconfig3.yml と shareconfig4.yml は以下に属し、ext-configカスタマイズして構成プロパティを読み取ることができます

プロジェクトを起動し、すべての構成ファイルが正常に読み取れるかどうかをテストします

访问127.0.0.1:9984/getValue,返回:nacos-config-share
访问127.0.0.1:9984/getShare1,返回:这里是共享配置文件1
访问127.0.0.1:9984/getShare2,返回:这里是共享配置文件2这里是共享配置文件2
访问127.0.0.1:9984/getShare3,返回:这里是共享配置文件3,Group:SHARE3_GROUP
访问127.0.0.1:9984/getShare4,返回:这里是共享配置文件4,Group:SHARE4_GROUP

変更されたshareconfig4.yml構成内容は次のとおりです。这里是共享配置文件4,Group:SHARE4_GROUP,支持自动刷新保存後、再度 127.0.0.1:9984/getShare4 を呼び出すと、次のように返されます。

共有構成ファイル 4、グループ: SHARE4_GROUP、自動更新をサポート

インターフェイスを呼び出した後、2 つの共有構成の読み込みメソッドを正常に読み取ることができ、一緒に使用できることがわかりました。ext-configユーザー定義の構成を実現する方法は、構成ファイルを共有します。

要約する

上記のデモでは、Nacos 共有構成の 2 つの実装を示しました. 2 つの方法は、異なるシナリオを対象としており、次のように要約されます:

  • shared-dataids道:
    • 共有構成ファイルとプロジェクトのデフォルト構成ファイルが同じグループにある場合に適しており、2 つのコマンドで直接実行できます。
    • メリット:設定が簡単
    • 短所:同じグループ内のみ
  • ext-config道:
    • これにより、開発者は共有構成ファイルの DataId、Group、および更新属性をカスタマイズして読み取ることができるようになり、shared-dataids既存の制限が解決されます。
    • 利点:shared-dataidsプログラム、ユーザー定義の構成と組み合わせて使用​​できます。強い柔軟性
    • 短所: 構成がエラーを起こしやすく、YAML 構文に精通している

2 つの方法には独自の利点があることがわかります。したがって、開発中に共有構成を使用する必要がある場合は、特定の状況に応じて最適なソリューションを選択できます。

この記事のソースコード: https://github.com/larscheng/larscheng-learning-demo/tree/master/Nacos

おすすめ

転載: blog.csdn.net/Wis57/article/details/130017667