SpringCloud学习

SpringCloud统一配置中心Config Client

2018-05-31  本文已影响32人  FlyXhc

Config Client

改造client-two,在pom文件中加入

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>

将application.yml重命名为bootstrap.yml,同时更改内容如下

spring:
  application:
    name: client2
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG
      profile: dev

spring.application.name对应着https://gitee.com/swlfly/config-repo-demo仓库中的文件名
spring.cloud.config.discovery.service-id:对应着配置中心的名称
spring.cloud.config.profile:对应着环境
当服务启动时根据bootstrap.yml的配置,这里将会拉取client2-dev.yml里的配置
为了验证是否成功拉取client2-dev.yml里的配置,我们新建一个EnvController来做测试

@RequestMapping("env")
@RestController
public class EnvController {

    @Value("${env}")
    private String env;

    @GetMapping("print")
    public String print(){
        return env;
    }
}

分别启动服务注册中心server,统一配置中心服务config,client-two,访问http://localhost:8081/env/print将会在浏览器返回dev

更改默认端口

从一开始我们的服务注册中心用的就是默认端口8761,当我们不使用默认端口时会怎么样呢,这里我们将端口改为8762,再将config里的配置也改为8762,client2-dev里的配置也改为8762,然后重新启动,我们会发现client-two启动失败,我们发现client-two获取配置的路径不对,如下

c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://localhost:8888

http://localhost:8888这个地址去获取配置了,之前使用8761端口能行是因为8761是默认配置,解决这个问题就是把client2-dev.yml里的地址配置拿出来放到bootstrap.yml中,更改后的client2-dev.yml与bootstrap.yml如下

spring:
  application:
    name: client2
server:
  port: 8081
env: dev  
spring:
  application:
    name: client2
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG
      profile: dev
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka #注册服务器地址

同时将client2.yml清空,因为client-two拉取配置时会同时拉取client2.yml与client2-dev.yml连个文件里的配置,然后合并
访问http://localhost:8081/env/print浏览器返回dev

更多技术文章可关注个人公众号: 码农Fly

公众号二维码: qrcode_for_gh_3d746d8ff050_258 (1).jpg
上一篇 下一篇

猜你喜欢

热点阅读