springboot 查看对外提供的接口_掌握SpringBoot-2.3的容器探针:深入篇

本文是《掌握SpringBoot-2.3的容器探针》系列的深入篇,探讨如何在非Kubernetes环境中开启SpringBoot的存活和就绪探针,以及如何定义、获取、监听和修改应用状态,以实现更灵活的容器管理。
摘要由CSDN通过智能技术生成

前文回顾

  • 本文是《掌握SpringBoot-2.3的容器探针》系列的第二篇,前文《掌握SpringBoot-2.3的容器探针:基础篇》知道了kubernetes的存活和就绪探针,以及SpringBoot-2.3的actuator新增的两个endpoint,当我们把应用部署到kubernetes环境时,这些知识让我们能配置出官方推荐的探针方案,如下图:
2c4cce2caf072b605b1ec1190b1f8952.png
  • 尽管上述配置已经可以覆盖多数场景,依然有三个问题未解决:
  1. 首先,SpringBoot为kubernetes提供了两个actuator项,但是那些并未部署在kubernetes的SringBoot应用呢?用不上这两项也要对外暴露这两个服务地址吗?
  2. 其次,就绪探针什么时候开始返回200返回码的?应用启动阶段,业务服务可能需要一段时间才能正常工作,就绪探针要是提前返回了200,那k8s就认为容器可以正常工作了,这时候把外部请求调度过来是无法正常响应的,所以搞清楚就绪探针的状态变化逻辑很重要;
  3. 最后,也是最重要的一点:有的场景下,例如外部依赖服务异常、本地全局异常等情况下,业务不想对外提供服务,等到问题解决后业务又可以对外提供服务了,这就要求我们可以自己来控制就绪探针的返回码,而kubernetes可以根据这个返回码决定是否可以将外部请求调度到此容器上;

本文就是为了解决上述问题而作,这些问题解决后才能用好探针技术,让它在容器环境带来更大价值;

关键知识点

解决上述问题的关键集中在以下几个知识点:

  1. SpringBoot对容器环境的判断;
  2. SpringBoot对状态定义;
  3. 获取状态;
  4. 监听状态;
  5. 修改状态;

接下来挨个学习这些知识点;

SpringBoot对容器环境的判断

  • 官方文档如下图所示,SpringBoot判断是否是kubernetes环境的逻辑很简单:是否有"*_SERVICE_HOST" 和"*_SERVICE_PORT"这两个环境变量:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值