21.Spring Cloud之分布式配置中心Spring Cloud Config注册中心版

前面的博客已经演示无注册中心版,那么Config Server也能以服务的方式注册到服务中心,被其他应用发现并获取配置信息。

   服务端配置(Config Server)

 

  • pom.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
2.spring-cloud-service-provide
service-provide
jar
0.0.1-SNAPSHOT
spring-cloud Maven Webapp
http://maven.apache.org


org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE



UTF-8
UTF-8
1.8
Dalston.RELEASE




org.springframework.cloud
spring-cloud-starter-eureka



org.springframework.cloud
spring-cloud-starter-hystrix


org.springframework.cloud
spring-cloud-config-server





org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import







org.springframework.boot
spring-boot-maven-plugin



 

  • application.properties
#指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问
spring.application.name=config-server
server.port=8779
# 配置服务注册中心
#注册中心地址
eureka.client.serviceUrl.defaultZone=http://testhost:8000/eureka/,http://testhost2:8001/eureka/
#指定本地仓库路径,默认是随机生成
spring.cloud.config.server.git.basedir=/home/springcloud/configrepos
# git仓库配置 主分支路径
spring.cloud.config.server.git.uri=https://gitee.com/niugangxy/springcloud
#很多场景下,可能把配置文件放在git仓库子目录下,可通过searchPaths配置,searchPaths也支持占位符
#如下配置,Config server会在git目录spring-cloud-config-respo,及其子目录下查找配置文件
spring.cloud.config.server.git.searchPaths=spring-cloud-config-respo
#git用户名
spring.cloud.config.server.git.username=username
#git用户密码
spring.cloud.config.server.git.password=password

 

  • 启动类
package com.niugang;

import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

/**
 * config server配置
 * 
 * @author niugang
 * @SpringBootApplication 
 * @EnableDiscoveryClient   
 * @EnableCircuitBreaker
 */
@SpringCloudApplication
@EnableConfigServer
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

 



 

客户端(Config Server)

 

  • pom.xml

 


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
2.spring-cloud-service-provide
service-provide
jar
0.0.1-SNAPSHOT
spring-cloud Maven Webapp
http://maven.apache.org


org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE




UTF-8
UTF-8
1.8
Dalston.RELEASE





org.springframework.cloud
spring-cloud-starter-eureka



org.springframework.cloud
spring-cloud-starter-hystrix




org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-starter-config

        
org.springframework.retry
spring-retry

        
org.springframework.boot
spring-boot-starter-aop





org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import







org.springframework.boot
spring-boot-maven-plugin



 

  • appplication.properties
#配置端口
server.port=8780

 

 
  • bootstrap.properties
#指定注册中心
eureka.client.serviceUrl.defaultZone=http://testhost:8000/eureka/,http://testhost2:8001/eureka/
#开起通过服务来访问Config Server
spring.cloud.config.discovery.enabled=true
#指定配置分布式配置中心服务名
spring.cloud.config.discovery.serviceId=config-server
#指定git仓库的分支,对应config server所获取的配置文件的{label}
spring.cloud.config.label=master
#失败快速响应和重试
spring.cloud.config.failFast=true
#对应 config server所获取的配置文件的{application}
spring.application.name=niugang
#对应config server所获取的配置文件的{profile}
spring.cloud.config.profile=dev

 

 
  • 启动类
package com.niugang;


import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;


/**
 * @author niugang
 *
 */
@SpringCloudApplication
public class Application {
public static void main(String[] args) {                                                                                                                                                                                                                                                                                                                                                         SpringApplication.run(Application.class, args);
}
}

 

 
  • controller测试
package com.niugang.controller;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigClientController {


/**
* 从niugang-dev.properties中获取配置的from值
*/
@Value("${from}")
private String from;


@RequestMapping("/profile")
public String profile() {
return this.from;
}


}

 

 
 

 

                                                                             微信公众号: 

                                               21.Spring Cloud之分布式配置中心Spring Cloud Config注册中心版_第1张图片

                                                                             JAVA程序猿成长之路

                                        分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。

你可能感兴趣的:(21.Spring Cloud之分布式配置中心Spring Cloud Config注册中心版)