配置中心

2019-06-23  本文已影响0人  你值得拥有更好的12138

以下概念性的语言均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网
Github源码参考:https://github.com/HanJuly/SpringCloudDemo

为什么需要配置中心

以下列子引用大佬:配置中心

springBoot的配置文件加载优先级

0.从配置中心加载的配置
1.命令行中传入参数
2.bootstrap.propertis
2.位于当前jar包之的,针对不同{profile}环境的配置文件内容,列如:application-{profile}
3..位于当前jar包之的,针对不同{profile}环境的配置文件内容,列如:application-{profile}
4.jar包的application.properties
5.jar包的application.properties
6.@PropertySource注解定义的属性
7.SpringApplication.setDeafaultProperties定义内容

所以在使用配置中心后,其他的配置都不会生效了。下面我们使用bootstrap.yaml配置github的地址,然后在github保存application.yaml配置

配置中心搭建

pom.xml
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
yaml

在Config端配置仓库地址,并服务化config,让其他服务通过服务名进行调用

# 公共配置
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        native:
        git:
          uri: https://github.com/HanJuly/config-repo
          search-paths: '{application}'
          username: xxxx
          password: xxxxxx

这的search-paths目录是使用配置中心的客户端的应用名,所以请在github上创建对
应的文件夹如下:


image.png image.png

服务化配置中心

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8500/eureka/

在启动类上加上注解


@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }

}

到此配置中心就搭建完成,

客服端搭建

yaml

首先把以前的application.yaml的配置放到对应的github目录下。


image.png

在客户端项目resource上删除原来的application.yaml文件改为bootstrap.yaml如下


image.png
yaml中这么配置
# eureka 主机/端口配置 start
spring:
  application:
    name: hello-consumer  #与github地址相同
  profiles:
    active: dev
  cloud:
    config:
      profile: ${spring.profiles.active}
      label: master   #github的分支
      discovery:
        enabled: true
        service-id: config-server  # 配置中心的服务名
        username: HanJuly
        password: github@9569155
      fail-fast: true #快速失败

pom.xml中配置

    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

验证

先启动注册中心,然后启动配置中心,最后启动客户端。

配置中的日志


image.png

当你看到这个时,配置文件被拉到本地,你可以到这个路径下查看。yaml的加载是在配置中心加载完了,然后再发送对应的客户端服务。如果yaml有错,那么就会在配置中心报错。

客户端的日志


image.png
上一篇下一篇

猜你喜欢

热点阅读