关闭ExecutorService'applicationTaskExecutor'

ajo*_*nha 6 mysql amazon-ecs amazon-rds spring-data-jpa spring-boot

我在AWS ECS集群中的docker容器中部署了一个Spring-boot应用程序。

我的应用程序堆栈是=> Spring Boot-JPA-MySQL RDS

最初,应用程序是通过EC2公共IP部署和访问的。

但是几分钟后,只有应用程序正在关闭ExecutorService'applicationTaskExecutor'并再次重新启动容器。它每3/4分钟不断发生。

我在连接到相同RDS的本地部署中没有得到这种错误。

这是我的application.properties

server.port=8192

spring.datasource.url=jdbc:mysql://multichannelappdatabase.cvjsdfsdfsdfsfs.us-east-1.rds.amazonaws.com:3306/multichannelappdb
spring.datasource.username=xxxxx
spring.datasource.password=xxxxx
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
#spring.jpa.hibernate.ddl-auto=create
spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 10000
spring.datasource.tomcat.testOnBorrow=true 
spring.datasource.tomcat.validationQuery=SELECT 1

Run Code Online (Sandbox Code Playgroud)

这是我的cloudwatch日志

?
16:20:50
2019-05-02 16:20:50.514 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8192 (http) with context path ''
?
16:20:50
2019-05-02 16:20:50.516 INFO 1 --- [ main] c.api.app.runner.UserManagerApplication : Started UserManagerApplication in 9.338 seconds (JVM running for 10.291)
?
16:20:57
2019-05-02 16:20:57.117 INFO 1 --- [nio-8192-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
?
16:20:57
2019-05-02 16:20:57.117 INFO 1 --- [nio-8192-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
?
16:20:57
2019-05-02 16:20:57.131 INFO 1 --- [nio-8192-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 14 ms
?
16:23:19
2019-05-02 16:23:19.253 INFO 1 --- [ Thread-4] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
?
16:23:19
2019-05-02 16:23:19.254 INFO 1 --- [ Thread-4] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
?
16:23:19
2019-05-02 16:23:19.257 INFO 1 --- [ Thread-4] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
?
16:23:19
2019-05-02 16:23:19.274 INFO 1 --- [ Thread-4] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.

Run Code Online (Sandbox Code Playgroud)

需要建议解决此问题。

仍然遇到同样的问题..任何解决方案都将有所帮助

小智 6

可能您的健康检查设置不正确。AWS 定期尝试在某个端点上访问您的应用程序。如果此端口/路径不可访问或回复错误,AWS 将重新启动容器。

找到您的负载均衡器(即使您使用 ECS,它也位于 EC2 仪表板上)。

  • 在“实例”下,您会发现容器的实例被标记为不健康。
  • 在“运行状况检查”下,您可以编辑运行状况检查以与正确的端口/URL 进行通信。确保它在您的容器上是可访问的(如果是 http(s),它应该在普通请求上回答 200)。


use*_*316 1

当托管基础设施内存或 cpu 不足、随机进程被终止、容器被终止时,我在 docker swarm 下也有同样的症状。