SprigCloud配置サービスは登録センターと連携して使用します.


生産環境においては、Config ServerとEurekaなどの登録センターを連携して使用することがありますが、Config CloudはEurekaやConselとの併用のみサポートされています.Zookeeperとの併用はサポートされていません.
準備工作
  • 起動サービスmicroservice-discovery-eureka ;
  • は上記と同じように、いくつかの構成ファイルを用意しています.名前はプロジェクト名-環境名.propertiesです.本明細書で使用されている名前はmicroservice-config-clienteureka-dev.properties 。
  • です.
    コードの例
    サーバ端コード例:まずMaven項目を新規作成し、pom.xmlに下記の内容を追加します.
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht
    tp://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://m
    aven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    <artifactId>microservice-config-server-eurekaartifactId>
    <packaging>jarpackaging>
    <parent>
    	<groupId>com.itmuch.cloudgroupId>
    	<artifactId>spring-cloud-microservice-studyartifactId>
    	<version>0.0.1-SNAPSHOTversion>
    parent>
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.cloudgroupId>
    		<artifactId>spring-cloud-config-serverartifactId>
    	dependency>
    	<dependency>
    		<groupId>org.springframework.cloudgroupId>
    		<artifactId>spring-cloud-starter-eurekaartifactId>
    	dependency>
    dependencies>
    project>
    
  • 起動類:ConfigServerEurekaplication.java
  • @SpringBootApplication
    @EnableConfigServer
    @EnableDiscoveryClient
    public class ConfigServerEurekaApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(ConfigServerEurekaApplication.class, args);
    	}
    }
    
  • プロファイル:appication.yml
  • server:
    	port: 8050
    spring:
    	application:
    		name: microservice-config-server-eureka
    cloud:
    	config:
    		server:
    			git:
    				uri: https://github.com/eacdy/spring-cloud-study/
    				search-paths: config-repo
    				username:
    				password:
    eureka:
    	client:
    		serviceUrl:
    			defaultZone: http://discovery:8761/eureka/
    
    クライアントの例として、Maven項目を作成し、pom.xmlに下記の内容を追加します.
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht
    tp://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://m
    aven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0modelVersion>
    	<artifactId>microservice-config-client-eurekaartifactId>
    	<packaging>jarpackaging>
    <parent>
    <groupId>com.itmuch.cloudgroupId>
    <artifactId>spring-cloud-microservice-studyartifactId>
    <version>0.0.1-SNAPSHOTversion>
    parent>
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.bootgroupId>
    		<artifactId>spring-boot-starter-webartifactId>
    	dependency>
    	<dependency>
    		<groupId>org.springframework.cloudgroupId>
    		<artifactId>spring-cloud-starter-configartifactId>
    	dependency>
    	<dependency>
    		<groupId>org.springframework.cloudgroupId>
    		<artifactId>spring-cloud-starter-eurekaartifactId>
    	dependency>
    	<dependency>
    		<groupId>org.springframework.bootgroupId>
    		<artifactId>spring-boot-starter-actuatorartifactId>
    	dependency>
    dependencies>
    project>
    
  • 起動類:ConfigCient EurekaAppliation.java
  • @SpringBootApplication
    @EnableDiscoveryClient
    public class ConfigClientEurekaApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(ConfigClientEurekaApplication.class, args);
    	}
    }
    
    試験コントローラの作成
    	/**
    	*    @RefreshScope     ,      /refresh,       
    	* @author eacdy
    	*/
    	@RestController
    	@RefreshScope
    	public class ConfigClientController {
    	@Value("${profile}")
    	private String profile;
    	@GetMapping("/hello")
    	public String hello() {
    		return this.profile;
    	}
    }
    
    プロファイル:appication.yml
    server:
    	port: 8051
    
    配置ファイル:bootstrap.yml
    spring:
    	application:
    		name: microservice-config-client-eureka
    cloud:
    	config:
    		profile: dev
    		label: master
    		discovery:
    			enabled: true #   false,  true          configserver        configserver uri
    		serviceId: microservice-config-server-eureka #   config server       serviceId,   :configserver
    eureka:
    	client:
    	serviceUrl:
    		defaultZone: http://discovery:8761/eureka/
    #     :https://github.com/spring-cloud/spring-cloud-config/bl
    #ob/master/docs/src/main/asciidoc/spring-cloud-config.adoc#discov
    #ery-first-bootstrap
    
    コード例から、Config Serverを登録センターと連携して使用するには、クライアント側にspring.cloud.config.discovery.enabled=trueとspring.cloud.co nfig.discovery.serviceIdの2つの構成項目を配置するだけでよいことが分かりました.Eurekaの配置について前文で述べましたが、疑問があれば、サービスの発見に関する章をご参照ください.注意:サービスがEureka及びConsu lであることが発見された場合、Config Serverはこれとの併用をサポートする.Zookeeperのサービスが発見された場合は、現在のところ共同利用はサポートされていません.
    注意点:clientは以下の依存性を追加する必要があり、そうでないとアクセス/refreshは404を得る.
    <dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-actuatorartifactId>
    dependency>
    
    clientのcontrollerは@RefshScope注釈を追加する必要があります.そうでないと、構成は更新できません.本明細書のbootstrap.ymlファイルの内容はappration.ymlに入れられません.そうでないとconfig部分は読み込めません.config部分の構成はappration.ymlより先に読み込まれます.また、bootstrap.ymlの構成はappration.ymlより先にロードされます.Config Serverもローカルストレージまたはsvnをサポートできます.したがって、本文は特に言及しないで、興味があるのは自分でSpring Cloudの文書を読むことができます.
    参考文献:Config Serverは登録センターと連携して使用する:https://github.com/spring-cloud/springcloudconfig/blob/master/docs/src/main/asciidoc/spring-cloudconfig.adoc#discovery-first-boot strap Config Serverの高さは利用可能です.https://github.com/spring-cloud/spring-cloudconfig/issues/87