今日、正常に登録できるサービスに遭遇しましたが、ヘルス チェックに失敗しました。ブラウザからヘルス チェックの URL にアクセスしましたが、Chrome のネットワークは保留中と表示され続け、このリクエストは送信されましたが、応答がなく、停止しました。
ヘルスチェックとはサービスポート配下の/healthリクエストが正常に返せるかどうかをチェックするものだと思っていましたが、そうではありません。
いわゆるヘルスチェックには多くのチェック項目があり、DataSourceHealthIndicator RedisHealthIndicator などの AbstractHealthIndicator クラスを Springboot が継承しており、Springboot が自動的に設定してくれます。例えば、mysql のデータソースを使用する場合、DataSourceHealthIndicator の doHealthCheck ()、redisを使用している場合は、RedisHealthIndicatorのdoHealthCheck()が実行されます。
まず、これらの外部データ ソースが接続できないためにヘルス チェックが失敗するかどうかを判断できます。
management: health: db: enabled: false redis: enabled: false elasticsearch: enabled: false
を構成してオフにすることができます。システムで使用されているすべての健康状態を確認します。健康チェックが正常に通過するかどうかを確認してください。問題を 1 つずつ開いてトラブルシューティングできる場合は。
最終的に、上記の保留中であることがわかりました。この状況は、ポートが間違っているか、mysql ユーザーの権限が不十分であるなど、mysql の URL 構成が正しくないことが原因であり、DataSourceHealthIndicator の doHealthCheck() は mysql に接続しますが、接続は失敗し、mysql への接続でスタックします。
正しい URL を構成し、権限を有効にして、問題を解決します。
Spring Boot は複数のコンポーネントのヘルス チェックを提供しており、各コンポーネントの実行ステータスを監視するのに役立ちますが、場合によっては開発者が起動に失敗したり、エラーを報告したりするため、適切に構成する必要があります。
2.1 まず、ヘルス チェックによって導入されるパッケージは ## です。 #
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid> </dependency>
2.2 関連するヘルスチェック関連のインジケーター
CassandraHealthIndicator Cassandra が利用可能かどうかを確認する
DiskSpaceHealthIndicator ディスク容量が不足していないか確認してください
DataSourceHealthIndicator DataSource からリンクを取得できるか確認してください
ElasticsearchHealthIndicator Elasticsearch クラスターが利用可能かどうかを確認する
JmsHealthIndicator JMS ブローカーが利用可能かどうかを確認する
MailHealthIndicator メール サーバーが利用可能かどうかを確認する
Mongo データベースが利用可能かどうかを確認する
Rabbit サーバーが利用可能かどうかを確認する
Redis サーバーが利用可能かどうかを確認する
Solr サーバーを確認してください。利用可能ですか?
application.properties で明示的に設定されます
//如禁止es的健康检查如下,默认均为开启状态 management.health.elasticsearch.enabled=false
*すべて無効にする
management.health.*.enabled=false
以上がSpringBootアクチュエータのヘルスチェックに失敗した場合の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。