spring.cloud.consul.discovery.enabled = true
spring.cloud.consul.host = consul-client.matrix
spring.cloud.consul.port = 8500
#[1]
spring.cloud.consul.discovery.serviceName = myService
#[2]
spring.cloud.consul.discovery.prefer-ip-address = true
#[3]
spring.cloud.consul.discovery.ip-address = tenant-center.usercenter
spring.cloud.consul.discovery.register-health-check = true
#[4]
spring.cloud.consul.discovery.deregister = true
#[5]
spring.cloud.consul.discovery.health-check-critical-timeout = 10s
#[6]
spring.cloud.consul.discovery.health-check-interval = 5s
#[7]
spring.cloud.consul.discovery.health-check-path = /tenant-center/actuator/health
[1]
消费者代码里面需要根据这个serviceName来确定服务,消费者根据serviceName在consul注册中心上找到生产者的地址信息
@FeignClient(value = "myService",path = "/tenant-center")
[2]/[3]
spring.cloud.consul.discovery.prefer-ip-address = true 指定生产者上报的是自己ip地址,即spring.cloud.consul.discovery.ip-address的值(框架会让生产者自己上传采集到的本地ip);我们把spring.cloud.consul.discovery.ip-address重新覆盖了,是因为k8s统一分配了统一地址;中间使用点号 xxx.yyy 是matrix不同的空间需要配置清楚
[4]
表示健康检查不过时候,服务自动下线deregister,健康检查是consul发送http请求检查服务
[5]/[6]
必须要指定单位,比如s;health-check-critical-timeout表示consul多久检查服务不正确,就剔除服务;health-check-interval表示多久检查一次,所以这个配置检查间隔5秒,就是2次检查(10秒)不健康就剔除服务
[7]
discovery.health-check-path配置的内容会自动组装成 http://tenant-center.usercenter:端口/tenant-center/actuator/health
由于服务集成了actuator组件,所以这个检查接口是自动生成的