SpringCloud之Consul

consul

服务的注册中心与配置中心
在这里插入图片描述

consul作为注册中心

下载启动consul
新建一个maven项目
项目pom
多加如下依赖

	<!--监控配置中心文件刷新-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!--consul的配置中心功能-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-config</artifactId>
    </dependency>
    <!--服务注册和发现功能-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>

bootstrap.yml

spring:
  application:
    name: myconsul
  cloud:
    consul:
      host: localhost
      port: 8500
server:
  port: 8080

StartApp

@SpringBootApplication
//此注解自动将服务注册到consul或zk上,除eureka外
@EnableDiscoveryClient
public class StartApp {
    public static void main(String[] args) {
        SpringApplication.run(StartApp.class, args);
    }
}

浏览器访问
在这里插入图片描述
在这里插入图片描述

consul作为配置中心

和上述代码一样
修改bootstrap.yml文件内容 注意:一定是bootstrap 而不是application 否则获取不到consul上面的值

spring:
  application:
    name: myconsul
  cloud:
    consul:
      host: 127.0.0.1
      port: 8500
      discovery:
          enabled: true
          register: true
          #healthCheckInterval: 15s
          health-check-timeout: 1s
          instance-id: ${spring.application.name}-${spring.cloud.consul.host}-${spring.cloud.consul.port}
          serviecName: ${spring.application.name}
      config:
        enabled: true #false禁用Consul配置,默认true
        format: YAML    # 表示consul上面文件的格式 有三种 YAML JSON HCL
        #data-key: configuration    #表示consul上面的KEY值(或者说文件的名字) 默认是data
        data-key: data    #表示consul上面的KEY值(或者说文件的名字) 默认是data
        #prefix设置配置值的基本文件夹
        #defaultContext设置所有应用程序使用的文件夹名称
        #profileSeparator设置用于使用配置文件在属性源中分隔配置文件名称的分隔符的值
  profiles:
    active: dev
server:
  port: 8080
#actuator 开启所有节点监控
management:
  endpoints:
    web:
      exposure:
        include: "*"

新建一个内容为空的bootstrap-dev.yml文件
在这里插入图片描述
consul上新建key-value
在这里插入图片描述

key-value说明

输入key和value
key:config/myconsul,dev/data
value:
myName: consul
user: 
  name: consul
  age: 23
  sex: 男

a、默认情况下,consul配置默认存储在/config文件夹中
b、myconsul为spring.application.name值,dev为spring.profiles.active值,data为data-key值
c、value用的是yaml格式的配置,冒号后面有一个空格。

User

@Data
@ConfigurationProperties(prefix = "user")
public class User {
    private String name;
    private String age;
    private String sex;
}

StartApp

@SpringBootApplication
//此注解自动将服务注册到consul或zk上
@EnableDiscoveryClient
@EnableConfigurationProperties({User.class})
public class StartApp {
    public static void main(String[] args) {
        SpringApplication.run(StartApp.class, args);
    }
}

UserController

@RestController
//监控consul配置中心文件是否修改,不加此注解修改consul后的值后下面获取到的值不是最新值
@RefreshScope
public class UserController {
    @Autowired
    private User user;

    @Value("${myName}")
    private String name;

    @RequestMapping(value = "getUser", method = RequestMethod.GET)
    public User getUser() {
        return user;
    }

    @RequestMapping(value = "getName", method = RequestMethod.GET)
    public String getName() {
        return name;
    }
}

在这里插入图片描述
在这里插入图片描述

修改age为25,myName 为consul22
使用postman的post请求方式,调用接口localhost:8080/actuator/refresh 刷新,不掉此接口值也不刷新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值