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

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.