spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul

这篇具有很好参考价值的文章主要介绍了spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

健康检测接口返回OUT_OF_SERVICE

curl -X GET http://192.168.5.53:8085/mgm/health

{"status":"OUT_OF_SERVICE"}

从日志启动看,没有任何报错信息;而且jvm进程也启动成功。

关键的一点信息是,服务的swagger地址访问也正常。

但是,consul上的服务状态就是不健康。
spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul,java-consul,spring boot,consul

当然,重启大法不好使。

二、解决办法

增加配置项: management.endpoint.health.show-details: always

{
    "status":"OUT_OF_SERVICE",
    "components":{
        "consul":{
            "status":"UP",
            "details":{
                "leader":"192.168.5.65:8500",
                "services":{
                    "product-service":[
                        "secure=false"
                    ],
                    "user-service":[
                        "version=1.5.3",
                        "secure=false",
                        "management.context-path=/mgm",
                        "health.path=/health"
                    ]
                }
            }
        },
        "discoveryComposite":{
            "status":"UP",
            "components":{
                "discoveryClient":{
                    "status":"UP",
                    "details":{
                        "services":[
                            "product-service",
                            "user-service"
                        ]
                    }
                }
            }
        },
        "diskSpace":{
            "status":"UP",
            "details":{
                "total":105033031680,
                "free":68411322368,
                "threshold":10485760
            }
        },
        "elasticsearchRest":{
            "status":"OUT_OF_SERVICE",
            "details":{
                "cluster_name":"test-cluster",
                "status":"red",
                "timed_out":false,
                "number_of_nodes":1,
                "number_of_data_nodes":1,
                "active_primary_shards":93,
                "active_shards":93,
                "relocating_shards":0,
                "initializing_shards":0,
                "unassigned_shards":16,
                "delayed_unassigned_shards":0,
                "number_of_pending_tasks":0,
                "number_of_in_flight_fetch":0,
                "task_max_waiting_in_queue_millis":0,
                "active_shards_percent_as_number":85.3211009174312
            }
        },
        "hystrix":{
            "status":"UP"
        },
        "mongo":{
            "status":"UP",
            "details":{
                "version":"4.0.27"
            }
        },
        "nacosConfig":{
            "status":"UP"
        },
        "ping":{
            "status":"UP"
        },
        "rabbit":{
            "status":"UP",
            "components":{
                "globalRabbitTemplate":{
                    "status":"UP",
                    "details":{
                        "version":"3.6.6"
                    }
                },
                "rabbitTemplate":{
                    "status":"UP",
                    "details":{
                        "version":"3.6.6"
                    }
                }
            }
        },
        "redis":{
            "status":"UP",
            "details":{
                "version":"3.2.11"
            }
        },
        "refreshScope":{
            "status":"UP"
        }
    }
}
  • 可以看出,elasticsearchRest的状态是OUT_OF_SERVICE。

  • 经排查,原来是配置项误写成了测试环境的es地址

    • 测试环境:http://192.168.10.147:9200
    • 开发环境:http://192.168.5.71:9200

修改es的地址未开发环境的地址, spring.elasticsearch.rest.uris文章来源地址https://www.toymoban.com/news/detail-623721.html

三、检验

  • consul上的服务状态变成了健康,服务可用。
    spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul,java-consul,spring boot,consul
  • 服务本身的健康检测返回:{“status”:“UP”}

到了这里,关于spring boot 服务健康检测返回OUT_OF_SERVICE,导致服务无法成功注册到consul的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spring Boot处理返回给前端Long类型精度丢失

    项目中采用springcloud Alibaba技术开发分布式系统,开发过程中采用雪花算法生成分布式Id,为Long类型,而Long类型返回给前端,会出现精度丢失问题。 接下来我们主要了解下,如何快速的处理精度丢失的问题 可以直接在返回实体属性添加\\\"@JsonSerialize(using = ToStringSerializer.class)\\\"。

    2024年02月02日
    浏览(59)
  • docker和docker-compose 服务健康检测(healthcheck)

    docker 启动服务,容器里面变成UP了;但这时,还不能正常对外提供服务,对调用方表现是处于不可用状态,直接报错 ; 若业务线涉及组件比较多,都是这种启动方式,验证影响业务服务的SLA 为了规避上面的风险,docker在v1.12版本后添加了healthcheck功能,这个功能可以自定义容

    2024年02月13日
    浏览(63)
  • java Spring Boot 2 /actuator/health 返回 HTTP 404

    spring-boot-starter-actuator官方文档 Spring Boot 包含许多附加功能,可帮助您在将应用程序投入生产时监控和管理应用程序。您可以选择使用 HTTP 端点或 JMX 来管理和监控您的应用程序。审核、运行状况和指标收集也可以自动应用于您的应用程序。 该spring-boot-actuator模块提供了 Spri

    2024年01月18日
    浏览(48)
  • Spring Boot 优雅实现统一数据返回格式+统一异常处理+统一日志处理

            在我们的项目开发中,我们都会对数据返回格式进行统一的处理,这样可以方便前端人员取数据,当然除了正常流程的数据返回格式需要统一以外,我们也需要对异常的情况进行统一的处理,以及项目必备的日志。         在项目开发中返回的是json格式的数据

    2024年01月19日
    浏览(43)
  • Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)

    目录 1. 用户登录权限校验 1.1 最初用户登录权限效验 1.2 Spring AOP 用户统⼀登录验证 1.3 Spring 拦截器 (1)创建自定义拦截器 (2)将自定义拦截器添加到系统配置中,并设置拦截的规则 1.4 练习:登录拦截器 (1)实现 UserController 实体类 (2)返回的登录页面:login.html (3)实

    2024年02月12日
    浏览(50)
  • windows服务器下java程序健康检测及假死崩溃后自动重启应用、开机自动启动

    前两天由于项目需要,一个windows上的批处理任务(kitchen.bat),需要接到mq的消息通知后执行,为了快速实现这里我们通过springboot写了一个jar程序,用于接收mq的消息,并调用bat文件。 调用windows的批处理脚本bat,并支持传参 可根据配置设置并发,同时消费多个mq消息调用多个

    2024年02月12日
    浏览(50)
  • SpringCloud Alibaba 深入源码 - Nacos 和 Eureka 的区别(健康检测、服务的拉取和订阅)

    目录 一、Nacos 和 Eureka 的区别 1.1、以 Nacos 注册流程来解析区别 a)首先,我们的服务启动时。都会把自己的信息提交给注册中心,然后注册中心就会把信息保存下来. 注册的信息实际上就是一个嵌套 Map,结构为 MapString, MapString, Service,第一层 key 就是 namespace_id,起到环境隔

    2024年01月22日
    浏览(52)
  • idea中在创建spring initializr中显示 No matching variant of org.springframework.boot:spring-boot-gradle-plug

    No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. 在创建新的项目时候要仔细看以下内容 把Gradle 改成Maven

    2024年02月11日
    浏览(51)
  • 若依框架下的自定义Exception抛出,返回code,msg不出错(spring boot)。

    若依框架下的自定义Exception抛出,返回code,msg不出错: 最近接的项目后台中,因为需要在app用到自定义的token验证(不用若依的那一套登陆token)来确保接口的安全性,需要在进入接口前使用aop切面的before来验证它的头(headers)是否符合条件。 先上代码: 当token出现不匹配

    2023年04月09日
    浏览(63)
  • 【Spring Boot】拦截器与统一功能处理:统一登录验证、统一异常处理与统一数据返回格式

     Spring AOP是一个基于面向切面编程的框架,用于将横切性关注点(如日志记录、事务管理)与业务逻辑分离,通过代理对象将这些关注点织入到目标对象的方法执行前后、抛出异常或返回结果时等特定位置执行,从而提高程序的可复用性、可维护性和灵活性。但使用原生Sp

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包