web-dev-qa-db-ja.com

ExecutorService 'applicationTaskExecutor'をシャットダウンしています

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

そして、これが私の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.

この問題を解決するための提案が必要です。

それでも同じ問題が発生する..解決策は役に立ちます

9
ajoy sinha

おそらく、ヘルスチェックが正しく設定されていません。 AWSは定期的に特定のエンドポイントでアプリケーションにアクセスしようとしています。このポート/パスに到達できないか、エラーで応答した場合、AWSはコンテナーを再起動します。

ロードバランサーを見つけます(ECSを使用している場合でも、EC2ダッシュボードにあります)。

  • 「インスタンス」の下に、異常とマークされたコンテナのインスタンスがあります。
  • [ヘルスチェック]でヘルスチェックを編集して、正しいポート/ URLと通信できます。コンテナで到達可能であることを確認してください(http(s)の場合は、プレーンリクエストに対して200で応答する必要があります)。
0
groovedigga