Почему Consul пытается подключиться к моей базе данных?

У меня есть приложение Spring Boot JPA, регистрирующее себя как микросервис с помощью Consul:

@SpringBootApplication
@EnableDiscoveryClient
@EnableAutoConfiguration
public class Bootstrapper {

  public static void main(String[] args) {
      SpringApplication.run(Bootstrapper.class, args);
  }
}

Мой application.yml выглядит так:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/butler_test
    username: root
    password: pwd
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: create
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    show-sql: false

spring:
  cloud:
    consul:
      discovery:
        healthCheckPath: /health
        healthCheckInterval: 10s

Однако, когда Consul связывается с конечной точкой /health, в моем приложении возникает следующее SQLException:

«Хосту 172.17.0.1 не разрешено подключаться к этому серверу MySQL».

Что происходит и почему есть даже попытка подключения?


person user2035039    schedule 22.12.2016    source источник


Ответы (1)


Если у вас настроен источник данных, конечная точка проверки работоспособности по умолчанию проверит связь с базой данных, выполнив SELECT 1, чтобы убедиться, что соединение с базой данных работает. Если это так, он будет отображать статус «ВВЕРХ». Поскольку вы видите ошибку, конфигурация вашей базы данных, вероятно, неверна.

Вы можете отключить проверку работоспособности источника данных, настроив ее в своих свойствах: management.health.db.enabled=false

Если вы хотите настроить проверку, см. здесь: Индикатор работоспособности Spring Boot Actuator

person Adam    schedule 22.12.2016