掌握SpringBoot-2(1)

本文详细探讨了SpringBoot在容器环境中的探针技术,包括如何判断是否为Kubernetes环境,如何在非Kubernetes环境开启探针,以及探针的不同状态。通过设置特定环境变量或配置属性,可以在开发阶段模拟Kubernetes环境来测试探针接口。同时,文章还介绍了SpringBoot对探针状态的定义以及获取状态的方法。此外,作者分享了自己的技术成长路径,并提供了Java开发学习资料的获取途径。
摘要由CSDN通过智能技术生成
  • 最后,也是最重要的一点:有的场景下,例如外部依赖服务异常、本地全局异常等情况下,业务不想对外提供服务,等到问题解决后业务又可以对外提供服务了,如果此时我们能自己写代码控制就绪探针的返回码,那就做到了控制kubernetes是否将外部请求调度到此容器上,这可是个很实用的功能!

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

关键知识点

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

  1. SpringBoot对容器环境的判断;

  2. SpringBoot对状态定义;

  3. 获取状态;

  4. 监听状态;

  5. 修改状态;

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

SpringBoot对容器环境的判断

  1. 官方文档如下图所示,SpringBoot判断是否是kubernetes环境的逻辑很简单:是否有__SERVICE_HOST_和_SERVICE_PORT这两个环境变量:

在这里插入图片描述

  1. 熟悉kubernetes的读者看到__SERVICE_HOST"_ 和_SERVICE_PORT,应该会想起KUBERNETES_SERVICE_HOST和KUBERNETES_SERVICE_PORT,这是k8s给pod中配置的环境变量,看来SpringBoot也是针对k8s的这个规则来判定是否是容器环境的(如果将来k8s的某个版本不给pod设置这个环境变量,那些原本可以正常运行的pod岂不是有危险了?);

  2. 接下来通过实践来验证上述规则是否有效;

  3. 创建一个SpringBoot-2.3.0.RELEASE的应用,其pom.xml中的parent信息如下:

org.springframework.boot

spring-boot-starter-parent

2.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值