Spring Cloud_33_SpringCloud配置中心/常用配置

SpringCloud配置中心/常用配置

  • 除了上节所常用的加密解密,其实还需要对客户端进行一些额外配置:服务器健康检测、客户端重试机制等

1、服务器健康状态

  • 默认情况下服务器会访问配置的SVN的URI,如果连接不上,服务器的健康状态就会设置成down
  • 除了检测SVN的URI是否连接正常,还可以检测URI下的目录是否可以连接
spring:
  cloud:
    config:
      server:
        health:
          repositories:
            ## 名称
            test-service:
              ## 是否有这个文件
              label: health-test
  • 访问http://127.0.0.1:8888/health

2、客户端错误提前与重试

2.1、错误提前

  • 错误提前

    实际应用中,客户端比较关心配置服务器是否能连接上(因为客户端在启动之前会去配置服务器读取配置文件,然后启动自身容器,如果配置服务器连接不上,那么客户端则无法启动,为了防止配置客户端带着错误启动,这里就引入了错误提前机制,在启动失败的时候直接抛出错误)

  • 未配置错误提前,未启动配置服务器直接启动配置客户端,仍然启动成功,会出现如下情况

  • 客户端配置,当配置服务器连接失败,客户端直接启动失败
spring:
  cloud:
    config:
      failFast: true

2.2、重试

  • 有错误之后,进行重试连接
  • 引入依赖

<dependency>
    <groupId>org.springframework.retrygroupId>
    <artifactId>spring-retryartifactId>
    <version>1.2.1.RELEASEversion>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-aopartifactId>
    <version>1.5.3.RELEASEversion>
dependency>

2.3、重试的配置项

  • spring.cloud.config.retry.initial-interval:初始的重试间隔,默认为1000毫秒
  • spring.cloud.config.retry.max-attempts:最大重试次数,默认为6次
  • spring.cloud.config.retry.max-interval:最大的重试间隔,默认为2000毫秒
  • spring.cloud.config.retry.multiplier:重试间隔的递增系数,默认为1.1,第二次和第三次之间的重试间隔就会 *递增系数

3、安全配置

  • 之前都是配置客户端直接连接服务器,来抓取配置的,在实际环境中,不可能任何客户端连接过来,服务器均接受
  • 就实现一个访问的机制:客户端登录服务器,获取配置

3.1、Server引入依赖


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-securityartifactId>
    <version>1.5.3.RELEASEversion>
dependency>

3.2、Server配置帐号/密码

security:
  user:
    name: root
    password: 123456

3.3、Client配置帐号/密码

spring:
  cloud:
    config:
      username: root
      password: 123456
  • 客户端没有权限时,启动返回401

4、服务器配置访问规则

  • /{application}/{profile}[/{label}]

    http://127.0.0.1:8888/atm-config-client/dev/aitemi2


![](https://i.imgur.com/IZpfbMA.png)
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties
  • 服务器端会将配置文件保存到本机

  • 优先更新本机,从本机获取,减轻SVN压力

你可能感兴趣的:(SpringCloud,SpringCloud)