Spring cloud 之consul 踩坑记录

Spring cloud使用consul,网上许多教程,这里就不重复教程了。
1.在学习spring cloud过程中,碰过项目成功启动,没有报错信息,但是服务并没有注册到consul
排查结果:依赖版本不对,必须使用正确的版本。版本对应如下:

Spring Cloud Spring Boot
Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x
Dalston和Edgware 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x
Camden 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x
Brixton 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x
Angel 兼容Spring Boot 1.2.x

2.服务注册成功但是显示不健康。
产生原因
注册到eureka server的服务,如果开启了健康检查,spring boot程序会隔一小段时间就检查一下配置的一些外部资源是否可用,比如各种数据源是否能联通,如果任意一个配置无法正常连通,就会向eureka server推送消息让该实例下线。这相当于是一个hearbeat,检查各个实例是否能正常使用。当然自己也可以自己实现HealthCheckHandler来个性化健康检测,甚至给一个REST接口更改getStatus()返回值。

原因清楚了那么就自己写一个接口做健康检查。

 @RequestMapping("/home")
    public String home() {
        return "Hello World";
    }

再修改配置(这里需要仔细一些,注意别打错了也得小心缩进问题,不然可能配置不生效):

spring:
 application:
  name: springClound2
 cloud:
  consul:
   host: 127.0.0.1
   port: 8500
   discovery:
    serviceName: springClound3
    healthCheckPath: /home
    healthCheckInterval: 15s

你可能感兴趣的:(spring,cloud)