Springcloudコンフィギュレーションセンターの設定


スプリングクラウドの構成センターとは何ですかスプリングクラウド構成は、マイクロサービスアーキテクチャのマイクロサービスに一元化された外部構成サポートを提供し、構成サーバーは、さまざまなマイクロサービスアプリケーションのすべての環境に一元化された外部構成を提供します。
ここに写真の説明を挿入
スプリングクラウド構成で何ができますか?

  1. 一元管理プロファイル
  2. さまざまな環境でのさまざまな構成、動的な構成の更新、
  3. 運用中に構成を動的に調整し、サービスによって展開された各マシンに構成ファイルを書き込む必要がなくなり、サービスは構成センターから独自の情報を均一にプルして構成します。
  4. 構成が変更された場合、構成を認識して最新の構成を適用するためにサービスを再起動する必要はありません。
  5. RESTインターフェーススタイルで構成情報を公開する

githubを介して構成センターを構成する

  1. githubにspring-cloud-configの新しいリポジトリを作成します
  2. ローカルクローンの後で変更し、さまざまな環境の構成ファイルを追加します
  3. 新しいモジュールモジュールを作成して、構成センターを設定します

application.yml

server:
  port: 3344
spring:
  application:
    name: cloud-config-center  # 注册进eureka服务器的微服务名字
  cloud:
    config:
      server:
        git:
          uri: https://github.com/sofencyXiao/spring-cloud-config.git
          search-paths:
            - spring-cloud-config  #搜索目录
      label: master  #读取分支


eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka

クラスを開始

@SpringBootApplication
@EnableDiscoveryClient
@EnableConfigServer  // 启动配置服务器
public class ConfigCenterApplication {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(ConfigCenterApplication.class,args);
    }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>Spring Cloud学习</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ConfigCenter</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--eureka client-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
</project>

サーバーの構成情報にアクセスするようにクライアントを構成
する新しいモジュールを作成して
構成センターのクライアントpom.xmlの設定をテストします。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>Spring Cloud学习</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>ConfigClient</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--eureka client-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

</project>

bootsrtap.ymlは、application.yml
構成の前のシステムレベルの構成ファイルのロード順序です。

server:
  port: 3355

spring:
  application:
    name: config-client
  cloud:
    #客户端配置
    config:
      label: master  #分支名称  github配置中心的分支
      name: config  #配置文件的名字  对应github上面的文件就是{name}-{profile}.yml
      profile: dev  #读取的后缀名称
      uri: http://localhost:3344  #配置中心的地址
#服务注册到eureka
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka

クライアントスタートアップクラス

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

コントローラがgithubの構成ファイルにアクセスできるかどうかをテストします

@RestController
public class ConfigClientController {
    
    


    @Value("${config.info}")  //github配置中心上面config-dev.yml下的内容config.info的信息
    private String configInfo;

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

上記の構成の問題は、githubの構成を変更した後、3344のアプリケーションでアクセスすることによりhttp://localhost:3344/master/config-dev.yml、githubの最新情報にアクセスできることですが、3355のインターフェイスを介して構成ファイルにアクセスすると、元の情報が表示され、時間内に実行されません。操作を更新します。
再起動しない限り。

ただし、サービスの数が増えると、ビジネスモジュールを変更するたびに再起動するのに非常に時間がかかるため、注釈を導入してアクチュエータの監視を追加する必要があります。

   <dependency>
    	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

@RefreshScope、およびポストリクエストを再度使用する必要があります curl -X POST "http://localhost:3355/actuator/refresh"

@RestController
@RefreshScope
public class ConfigClientController {
    
    
    @Value("${config.info}")  //github配置中心上面config-dev.yml下的内容config.info的信息
    private String configInfo;

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

しかし、マイクロサービスが増えると、毎回クライアントをアクティブ化するためにポストリクエストを実行する必要がありますか?そこで、バスバスの概念が導入されました

おすすめ

転載: blog.csdn.net/qq_43079376/article/details/108314485