springcloud整合consul遇到的问题

服务可以在consul看到但是一直红叉显示All service checks failing

consul 控制台一直提示

2024-04-07T19:36:19.680+0800 [WARN]  agent.http: This request used the token query parameter which is deprecated and will be removed in a future Consul version: logUrl="/v1/catalog/services?wait=2s&index=19&token=<hidden>"

排查思路

一开始看控制台的WARN,看到有token的字眼还以为要配置token,尝试配置了token还是不行,后来看了程序的日志发现打印了一条日志

2024-04-07T19:47:11.812+08:00  INFO 20956 --- [           main] o.s.c.c.s.ConsulServiceRegistry          : Registering service with consul: NewService{id='consumer-8002', name='consumer', tags=[], address='localhost', meta={secure=false}, port=8002, enableTagOverride=null, check=Check{script='null', dockerContainerID='null', shell='null', interval='10s', ttl='null', http='http://localhost:8002/actuator/health', method='null', header={}, tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null', grpc='null', grpcUseTLS=null}, checks=null}

里面的check{http=‘http://localhost:8002/actuator/health’} 一你了我的注意,/actuator/health这个很熟悉是spring-boot-starter-actuator的一个健康检查接口

解决

①引入spring-boot-starter-actuator 服务注册上去后consul会检查这个接口来判断服务是否存活
②如果不想引入spring-boot-starter-actuator可以自己自定义一个接口,然后再配置文件配置健康检查的路径就行

spring:
  application:
    name: consumer
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
      	# 配置健康检查路径 默认是/actuator/health
        health-check-path: /actuator/health
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值