我们鼓励使用英文,如果不能直接使用,可以使用翻译软件,您可以继续保留中文译文。另外请按照如下要求提交相关信息节省社区维护同学的理解成本,否则该讨论极有可能直接被忽略或关闭。我们建议使用英语。如果您的母语不是英语,则可以使用翻译软件。我们建议使用英语。如果您的母语不是英语,则可以使用翻译软件。另外,请按照以下要求提交相关信息,以节省社区维护的理解成本,否则讨论很可能被忽略或直接关闭。
哪个组件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.3.12.RELEASE</version>
</dependency>
描述该bug k8s应用在liveness中配置/actuator/health,应用请求nacos失败时,会导致pod异常重启,应用自身状态无异常,可以接受外部请求。
重现 步骤重现此行为:
- 启动一个简单的SpringCloudAlibaba应用,并引入nacos config、discovery以及actuator依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- 访问http://localhost:8088/actuator/health
{ "status": "UP", "components": { "discoveryComposite": { "status": "UP", "components": { "discoveryClient": { "status": "UP", "details": { "services": [ "provider" ] } } } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 285202673664, "threshold": 10485760, "exists": true } }, "nacosConfig": { "status": "UP" }, "nacosDiscovery": { "status": "UP" }, "ping": { "status": "UP" }, "refreshScope": { "status": "UP" } } }
- 通过添加网络白名单策略,模拟应用与nacos之间断连的情况,再次访问http://localhost:8088/actuator/health
{ "status": "DOWN", "components": { "discoveryComposite": { "status": "UP", "components": { "discoveryClient": { "status": "UP", "details": { "services": [] } } } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 284207394816, "threshold": 10485760, "exists": true } }, "nacosConfig": { "status": "UP" }, "nacosDiscovery": { "status": "DOWN" }, "ping": { "status": "UP" }, "refreshScope": { "status": "UP" } } }
- 此时actuator判断应用的健康状态为“DOWN”,但实际应用实际仍可以对外提供服务
预期行为 在SCA应用与nacos之间连接失败时,/actuator/health状态不应该为“DOWN”
附加上下文 SCA 版本 2.2.9.RELEASE