美文网首页
配置中心

配置中心

作者: 你值得拥有更好的12138 | 来源:发表于2019-06-23 15:23 被阅读0次

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

为什么需要配置中心

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

  • 由于业务的变动,用户在以前进行注册的时候默认的用户名是“小强”,但是新的领导来了,需要把这个改成“小明”。因为,业务的流量还是比较大的,所以,没有办法在白天流量高峰期修改配置文件,进行重启!

  • 此时,就辛苦开发的小哥了,他们需要等到半夜里凌晨三四点的时候,没有流量的时候,小心翼翼的去修改application.properties配置文件,必将系统进行重启。

  • 另外,公司采用的是集群,进行了负载均衡,系统部署在了多台服务器上,那么开发小哥需要一台台的进行修改,小心翼翼的进行修改,生怕出了一点意外!

  • 开发小哥是在忍受不了这种变更了,修改一个配置就需要如此周折的去完成这件事情!忍无可忍,于是像交流群里的一位大神请教,大神指点让他去搜索一下“分布式配置中心”。

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

相关文章

  • apollo+nacos 总结

    配置中心 配置中心简介 说到配置中心, 大家可能都不陌生。我们携程现在用的qconfig, 就是一个典型的配置中心...

  • Nacos注册中心之概要设计

    前言 在之前的文章中分析了Nacos配置中心,配置中心的核心是配置的创建、读取、推送。 注册中心的核心比配置中心多...

  • SpringCloud-Spring Cloud Config分

    分布式配置中心可以理解成 注册中心+配置中心的整合。具体实现思路:搭建一个注册中心,在注册中心的基础上添加配置中心...

  • SpringCloud Config使用

    构建配置中心 配置中心服务端配置 新建一个配置中心模块,且注册到eureka中,在其他服务的基础上增加如下配置po...

  • 05知识点

    配置中心设计与实践 配置中心定义 服务集群的统一配置存储和管理系统,配置中心的特点: 独立于程序的只读变量 伴随应...

  • 配置中心

    作用 分布式系统中,服务数量比较多,服务有大量的配置文件,文件可以统一管理,提高效率。配置中心是分布式不可取少的一...

  • 配置中心

    配置中心的原理

  • 配置中心

    git仓库中创建一个文件夹cloud-config-repo,在文件夹下面创建三个properties:cloud...

  • 配置中心

    当项目达到一定程度,配置五花八门这时候配置中心的便派上了用场。 方案1 maven打包 如果只是要区分开发环境和上...

  • 配置中心

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

网友评论

      本文标题:配置中心

      本文链接:https://www.haomeiwen.com/subject/ggnvqctx.html