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

相关文章

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁