Maison  >  Article  >  Java  >  Comment résoudre le problème si la vérification de l'état de l'actionneur SpringBoot échoue

Comment résoudre le problème si la vérification de l'état de l'actionneur SpringBoot échoue

王林
王林avant
2023-05-10 16:04:062642parcourir

La vérification de l'état de l'actionneur SpringBoot a échoué

Aujourd'hui, j'ai rencontré un service qui a pu être enregistré avec succès, mais la vérification de l'état a échoué. J'ai accédé à l'URL de la vérification de l'état via le navigateur et le réseau Chrome a continué à afficher en attente, indiquant que la demande a été soumise. mais il fallait revenir, coincé.

Au départ, je pensais que le contrôle de santé consistait à vérifier si la demande /health sous le port de service peut revenir normalement, mais ce n'est pas le cas.

Le soi-disant contrôle de santé comporte de nombreux éléments de contrôle. Springboot hérite des classes de AbstractHealthIndicator, telles que DataSourceHealthIndicator RedisHealthIndicator, etc. Springboot le configurera automatiquement. Par exemple, si la source de données MySQL est utilisée, doHealthCheck() de DataSourceHealthIndicator sera exécuté pendant. bilan de santé. Utilisation Lorsque redis est installé, doHealthCheck() de RedisHealthIndicator sera exécuté.

Solution :

Tout d'abord, vous pouvez déterminer si ces sources de données externes ne peuvent pas être connectées, ce qui entraînerait l'échec de la vérification de l'état. Vous pouvez configurer

management:
  health:
    db:
      enabled: false
    redis:
      enabled: false
    elasticsearch:
      enabled: false

pour désactiver la vérification de l'état de tout ce qui est utilisé dans le système, et voir. si le contrôle de santé peut se dérouler normalement. Si tel est le cas, en les ouvrant un par un et en les dépannant un par un

, j'ai finalement découvert que la situation en attente ci-dessus est due à une configuration d'URL incorrecte de MySQL, telle qu'un mauvais port, ou les autorisations insuffisantes de l'utilisateur mysql. doHealthCheck() de DataSourceHealthIndicator se connectera à mysql et la connexion échouera, elle restera donc bloquée. Connectez-vous à mysql là-bas.

Configurez l'URL correcte, activez les autorisations et résolvez le problème.

Configuration et organisation liées à la vérification de l'état de Spring Boot

1. Qu'est-ce que la vérification de l'état de Spring Boot et à quoi sert-elle ?

Spring Boot fournit des vérifications de l'état de plusieurs composants, ce qui est utile pour surveiller l'état d'exécution de chaque composant. Cependant, les développeurs ne parviennent parfois pas à démarrer, à signaler des erreurs, etc., et doivent les configurer de manière appropriée.

2. Quelles vérifications existe-t-il dans le projet Spring Boot et comment configurer les vérifications associées :

2.1 Tout d'abord, le package introduit par la vérification de l'état est

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-actuator</artifactid>
</dependency>

2.2 Indicateur lié à la vérification de l'état associé

  • CassandraHealthIndicator Vérifiez si Cassandra est disponible<code>CassandraHealthIndicator 检查Cassandra是否可用

  • DiskSpaceHealthIndicator 检查磁盘空间是否不足

  • DataSourceHealthIndicator 检查能否从DataSource获取链接

  • ElasticsearchHealthIndicator 检查Elasticsearch cluste是否可用

  • JmsHealthIndicator 检查JMS broker是否可用

  • MailHealthIndicator 检查mail server是否可用

  • MongoHealthIndicator 检查Mongo database是否可用

  • RabbitHealthIndicator 检查Rabbit server是否可用

  • RedisHealthIndicator 检查Redis server是否可用

  • SolrHealthIndicator 

DiskSpaceHealthIndicator Vérifiez si l'espace disque est insuffisant

DataSourceHealthIndicator Vérifiez si le lien peut être obtenu à partir de DataSource

ElasticsearchHealthIndicator Vérifiez si le cluster Elasticsearch est disponible

🎜🎜JmsHealthIndicator Vérifiez si le courtier JMS est disponible🎜🎜🎜🎜MailHealthIndicator Vérifiez si le serveur de messagerie est disponible🎜🎜🎜🎜MongoHealthIndicator Vérifiez si la base de données Mongo est disponible🎜🎜🎜🎜RabbitHealthIndicator Vérifiez si le serveur Rabbit est disponible🎜 🎜🎜🎜RedisHealthIndicator Vérifiez si le serveur Redis est disponible🎜🎜🎜🎜SolrHealthIndicator Vérifiez si le serveur Solr est disponible🎜🎜🎜🎜Vous pouvez voir qu'il existe des contrôles pour divers services externes. Veuillez parcourir la documentation officielle pour plus de détails. Pas plus de détails ici🎜🎜🎜2.3 Comment désactiver/activer le bilan de santé 🎜🎜🎜Explicitement défini dans application.properties🎜
//如禁止es的健康检查如下,默认均为开启状态
management.health.elasticsearch.enabled=false
🎜Vous pouvez également utiliser *Disable all🎜
management.health.*.enabled=false
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer