java - 在远程调试中暂停 Spring Boot Java 应用程序时,ECS 代理停止并重新启动 Docker 容器

标签 java spring-boot docker amazon-ecs

我注意到一个问题,当我远程调试在 EC2 实例上的 ECS docker 容器中运行的 SpringBoot 应用程序(由任务管理)时,如果我暂停太长时间(例如,需要研究或与团队成员交谈)- 在大约10 分钟后,AWS 杀死容器并再次启动它,因为它不被认为是 Activity 的。

我认为这是因为断点在所有线程上暂停。

如果我只在当前线程上暂停,我不知道可能会引入什么竞争条件,所以没有尝试修改它。

当需要远程调试时,有没有推荐的方法来处理这种情况?

最佳答案

您可以检查 ECS 服务事件以确切了解任务终止的原因,很可能该任务被视为不健康。如果是,可以执行以下操作之一:

  1. 更改参数以使其更长,然后才被视为 不健康
  2. 如果您使用应用程序 LB,请禁用运行状况检查 按实例路由,不允许使用此路由

理想情况下,出于调试和开发目的,我们可以通过在本地系统中运行应用程序来避免使用 AWS 任务进行远程调试。如果您需要任何 AWS 基础设施来引导/运行您的应用程序,您只需登录并检索访问 token 即可。

关于java - 在远程调试中暂停 Spring Boot Java 应用程序时,ECS 代理停止并重新启动 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543665/

相关文章:

java - 如何在 JUnit 测试中初始化对象?

java - 如何在eclipse galileo中配置struts?

java - 为什么 Java 将包访问设置为默认?

java - 在非预定义值上请求映射?

java - 在 Spring Boot 中实例化的类中的 Autowiring 存储库

amazon-web-services - 运行多容器 Docker 的 AWS BeanStalk 环境无法启动,运行状况为 : Severe

linux - 如何将凭证烘焙到 git 的 docker 镜像中?

java - 如何创建一个类标签来用java构建广播变量spark?

java - Spring Boot JPA 不工作

docker - Ceph上的Docker Swarm