SprigCloud配置サービスは登録センターと連携して使用します.
生産環境においては、Config ServerとEurekaなどの登録センターを連携して使用することがありますが、Config CloudはEurekaやConselとの併用のみサポートされています.Zookeeperとの併用はサポートされていません.
準備工作起動サービス は上記と同じように、いくつかの構成ファイルを用意しています.名前はプロジェクト名-環境名.propertiesです.本明細書で使用されている名前は です.
コードの例
サーバ端コード例:まずMaven項目を新規作成し、pom.xmlに下記の内容を追加します.起動類:ConfigServerEurekaplication.java プロファイル:appication.yml 起動類:ConfigCient EurekaAppliation.java
注意点:clientは以下の依存性を追加する必要があり、そうでないとアクセス/refreshは404を得る.
参考文献: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
準備工作
microservice-discovery-eureka ;
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>
@SpringBootApplication
@EnableConfigServer
@EnableDiscoveryClient
public class ConfigServerEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerEurekaApplication.class, args);
}
}
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>
@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.ymlserver:
port: 8051
配置ファイル:bootstrap.ymlspring:
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