Spring Boot監視Actutor、redis監視をオフにします。


Spring Boot監視Actutor、redis監視をオフにします。
  • メソッド
    方法
    この依存性を導入すると、Spring Bootはデフォルトでいくつかの情報を監視します。redisを含み、redisのデフォルト初期構成に従って、local host:6379はredisを接続することを試みる。もし私たちがredisを使っていなかったら、起動はエラーとなります。
     <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-actuatorartifactId>
          <version>2.2.1.RELEASEversion>
       dependency>
    
    例えば、Spring BootAdminを使う時、その中にActutorの依存が内蔵されています。エラーが発生しました。
    [WARN ] 2020-05-28 09:28:17.179 [registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator - Failed to register application as Application(name=admin-client, managementUrl=http://Gordon-pc:8768/actuator, healthUrl=http://Gordon-pc:8768/actuator/health, serviceUrl=http://Gordon-pc:8768/) at spring-boot-admin ([http://localhost:8769/instances]): I/O error on POST request for "http://localhost:8769/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
    [WARN ] 2020-05-28 09:28:19.075 [boundedElastic-1] org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator - Redis health check failed
    org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1200)
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1179)
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedReactiveConnection(LettuceConnectionFactory.java:952)
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:429)
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:94)
    	at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:85)
    	at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:225)
    	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
    	at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
    	at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
    	at java.util.concurrent.FutureTask.run(FutureTask.java)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
    	at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
    	at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
    	at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:234)
    	at io.lettuce.core.RedisClient.connect(RedisClient.java:207)
    	at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115)
    	at java.util.Optional.orElseGet(Optional.java:267)
    	at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115)
    	at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1198)
    	... 15 common frames omitted
    
    ネットで解決方法を探しましたが、全部提供された方式です。
    @Component("redisHealthIndicator")
    public class RedisHealthIndicator implements HealthIndicator {
    
        @Override
        public Health health() {
            return Health.up().build();
        }
        
    }
    
    その結果、配置ファイルを見ていると、もう一つの簡単な方法が見つかりました。
    
    management:
      health:
        redis:
          enabled: false
    
    いいです