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é.
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.
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.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!