ホームページ  >  記事  >  Java  >  SpringBootアクチュエータのヘルスチェックに失敗した場合の解決方法

SpringBootアクチュエータのヘルスチェックに失敗した場合の解決方法

王林
王林転載
2023-05-10 16:04:062644ブラウズ

SpringBoot アクチュエータのヘルス チェックに失敗しました

今日、正常に登録できるサービスに遭遇しましたが、ヘルス チェックに失敗しました。ブラウザからヘルス チェックの 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 ヘルス チェック関連の構成と構成

1. Spring Boot ヘルス チェックとは何ですか?また何に使用されますか?

Spring Boot は複数のコンポーネントのヘルス チェックを提供しており、各コンポーネントの実行ステータスを監視するのに役立ちますが、場合によっては開発者が起動に失敗したり、エラーを報告したりするため、適切に構成する必要があります。

2. 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 メール サーバーが利用可能かどうかを確認する

  • ##MongoHealthIndicator

    Mongo データベースが利用可能かどうかを確認する

  • RabbitHealthIndicator

    Rabbit サーバーが利用可能かどうかを確認する

  • RedisHealthIndicator

    Redis サーバーが利用可能かどうかを確認する

  • SolrHealthIndicator

    Solr サーバーを確認してください。利用可能ですか?

  • さまざまな外部サービスのチェックがあることがわかります。詳細については、公式ドキュメントを参照してください。ここには詳細はありません。

2.3 ヘルス チェックを閉じる/開く方法

application.properties で明示的に設定されます

//如禁止es的健康检查如下,默认均为开启状态
management.health.elasticsearch.enabled=false

*すべて無効にする

management.health.*.enabled=false
を使用することもできます

以上がSpringBootアクチュエータのヘルスチェックに失敗した場合の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。