LoginSignup
1
0

More than 1 year has passed since last update.

SpringBoot  アプリが、予期せず停止してしまう場合の対処

Posted at

About

SpringBootアプリが、ログに、「Application availability state ReadinessState changed from ACCEPTING_TRAFFIC to REFUSING_TRAFFIC」と残してダウンしてしまう時の対処について。

事象について

 
私の場合は、ScooldというStackOverflow clone アプリを動かしていた際におこりました、SpringBoot version は、2.5.2 です。
起動後しばらくすると、ログに以下が表示されます。


2022-01-20 19:47:51,025 [DEBUG] o.s.b.a.ApplicationAvailabilityBean - Application availability state ReadinessState changed from ACCEPTIN
G_TRAFFIC to REFUSING_TRAFFIC
...
2022-01-20 19:47:51,032 [DEBUG] o.s.c.s.DefaultLifecycleProcessor - Bean 'webServerGracefulShutdown' completed its stop procedure

ここらへんの情報、
https://www.baeldung.com/spring-liveness-readiness-probes
によると、Spring2.3から、Kubernetes環境下で、グレースフルにアプリを終了する機能が追加されているようです。
ぱっと見、KubernetesのヘルスチェックによりPodが再起動されて、アプリが再起動される時に安全に再起動ができるようにしてくれるようです。

この機能は、上記記事の以下記述から、SpringBootが必要と判断する場合に有効化するようですが、

We'll usually let Spring Boot decide when to stand up these probes for us. But, if we want to, we can enable them manually in our application.properties.

私の実行環境(Sakura VPS)、または、アプリの構成? では不必要に有効化されてしまっているようです。

解決策

BootによりKubernetes用の設定がKubernetes環境以外で設定される場合があるようなので、以下の設定を追加し、マニュアルで機能を停止することで、アプリのシャットダウンが解消されました。

management.health.probes.enabled=false
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0