consul【结合spring cloud使用consul配置中心并自动刷新】


重点:

consul的配置需要全部写在resource目录下bootstrap.yml文件中,写在application.yml中不能生效!

consul config配置

#bootstrap.yml配置
spring:
  cloud:
    consul:
      host: 192.168.1.11
      port: 8500
      config:
        enabled: true
        format: KEY_VALUE
        data-key: data
        watch:
          enabled: true
        prefix: deriii
        acl-token: bd63ce16-ccd0-22e1-d37d-fb948232cbf5
      discovery:
        healthCheckPath: /actuator/health
        healthCheckInterval: 15s
        acl-token: bd63ce16-ccd0-22e1-d37d-fb948232cbf5
        prefer-ip-address: true
        ip-address: 192.168.1.113

获取配置

    //data在consul中完整的目录是prefix + application name + data  
    @Value("${data}")
    String test;

    @RequestMapping("/test")
    public String test() {
        return test;
    }

实时刷新,需要在类上加注解

@RefreshScope

另一种实现配置刷新

#bootstrap.yml配置,主要是修改了format为YAML,配合spring boot Configuration使用
spring:
  cloud:
    consul:
      host: 192.168.1.11
      port: 8500
      config:
        enabled: true
        format: YAML
        data-key: data
        watch:
          enabled: true
        prefix: deriiiii
        acl-token: bd63ce16-ccd0-22e1-d37d-fb948232cbf5
      discovery:
        healthCheckPath: /actuator/health
        healthCheckInterval: 15s
        acl-token: bd63ce16-ccd0-22e1-d37d-fb948232cbf5
        prefer-ip-address: true
        ip-address: 192.168.1.113

spring boot 配置类

@ConfigurationProperties(prefix = "ttt")
@Configuration
public class HiConfig {

    private String test;

    //getter setter ...
}

consul中key为prefix + application Name + data,value为yaml类型,且前缀是ttt,属性名为test

#key = deriiii/service-hello/data
ttt:
 test: asdas

启动类加上

@EnableConfigurationProperties({HiConfig.class})

文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
consul【多台机器docker部署】 consul【多台机器docker部署】
问题1:ip问题使用容器方式在主机上部署后,consul节点的ip为容器IP,如上图所示,主机外不能访问到该服务,需要配置内网或公网IP。 使用docker使用docker run命令启动consul只需要在run后增加 --net = "
2019-10-11
下一篇 
consul【K/V-HTTP接口】 consul【K/V-HTTP接口】
全局配置 http头部加入X-Consul-Token,值为有权限的token 查询一个key值#key=/data http://192.168.1.11:8500/v1/kv/data #key=/test/data http://
2019-10-10
  目录