consul注册中心服务All service checks failing及解决

2023-10-21 12:30

本文主要是介绍consul注册中心服务All service checks failing及解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • consul注册中心服务All service checks failing
      • 问题一:能注册,有报错,中间件不可用
      • 问题二:能注册,没报错,通不过检查
      • 问题三:同一个服务,注册了很多次

consul注册中心服务All service checks failing

问题一:能注册,有报错,中间件不可用

  • 现象:服务已启动,可以访问,但是注册中心里红叉All service checks failing
  • 原因:大多数情况下是程序有报错
    • 首先去查看服务的启动日志,看看有没有报错,如果启动日志有明显报错,对应解决即可
    • 大多数为配置文件设置的某个中间件连接不了,检查不通过
    • 例如redis服务连接失败、数据库连接失败、kafka连接失败,都遇到过
  • 解决:将所有依赖的中间件,启动起来,保证可以正常访问即可

问题二:能注册,没报错,通不过检查

  • 现象:这是一个新增的微服务,调用第三方服务的SDK提供服务,由于只有windows版本SDK,所以该服务只能在windows系统里部署,而consul注册中心在linux里面,网络已打通。windows里的单体微服务已启动,启动日志也没有任何报错信息,注册成功。服务接口能正常调用,但是注册中心红叉,校验不通过All service checks failing

  • 原因:查看了注册中心的信息,发现健康检查的地址不对,是一个内网地址(192.168.1.x),windows机器有多个网卡,取了机器的其中一个ip地址,没取实际的连接地址(183.169.xxx.xx),导致健康检查时http访问不通
    在这里插入图片描述

  • 解决:在配置文件里,直接指定健康检查地址,将可访问的本机ip设置进去,即可

spring:cloud:consul:discovery:health-check-url: http://183.169.xxx.xx:xxxx/management/health

问题三:同一个服务,注册了很多次

  • 现象:服务重启后,新增了一个微服务,之前的服务也没有从注册中心移除,而且健康状态也是绿色
  • 原因:instantId不同,注册中心服务监测使用的url是一样的
    • 服务的instantId,加了随机数,所以每次启动服务都会生成一个新的instantId

    • 虽然instantId不同,但是注册中心服务监测使用的url都是一样的

    • 在同一台机器上反复重启,就会增加很多instantId不同的该服务加入注册中心,而监测使用的url是一样的,则最新的服务启动成功后,注册中心监测是通过的,其余的
      在这里插入图片描述

    • 原有配置

spring:cloud:consul:discovery:healthCheckPath: /management/healthinstanceId: data-analysis:${spring.application.instance-id:${random.value}}service-name: data-analysis
  • 服务名相同,instantId不同的服务,都加入了注册中心,且都检查最新的微服务
  • 解决:去除随机数即可
    • 注释掉instanceId一行,使用ip端口号生成 服务名-ip地址-端口号,保证instance-id在需要一致(ip端口相同)时保持一致即可
    • 增加heartbeat.enabled=true,使用ttl方式心跳监测服务监控状态
    • 修改后的配置
spring:cloud:consul:discovery:healthCheckPath: /management/healthinstance-id: ${spring.application.name}-${spring.cloud.client.ip-address}-${server.port}service-name: ${spring.application.name}heartbeat:enabled: true # 为true使用 ttl 方式,默认false使用 http 方式

注意:${spring.cloud.client.*} 是利用了Spring Boot配置文件可以读取环境变量的特点,应用需要集成Spring Boot Actuator。

这篇关于consul注册中心服务All service checks failing及解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254402

相关文章

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如