При использовании Reactive Redis с Webflux существует 2 фабрики соединений Redis. Реактивный и нереактивный. Нереактивное состояние отображается как "DOWN"
, что приводит к сбою проверки остального состояния.
Почему существуют 2 фабрики соединений?
build.gradle.kts
dependencies {
compile("org.springframework.boot:spring-boot-starter-data-redis-reactive:2.1.4.RELEASE")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("io.jsonwebtoken:jjwt:0.9.1")
implementation("org.json:json:20180813")
runtimeOnly("org.springframework.boot:spring-boot-devtools")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.3.1")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("de.flapdoodle.embed:de.flapdoodle.embed.mongo")
testImplementation("io.projectreactor:reactor-test")
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.3.1")
}
RedisConfig.kt
@Configuration
@EnableConfigurationProperties
class RedisConfig(@Value("\${redis.host}") private val redisHost: String,
@Value("\${redis.port}") private val redisPort: Int) {
@Bean
fun reactiveRedisConnectionFactory(): ReactiveRedisConnectionFactory {
return LettuceConnectionFactory(redisHost, redisPort)
}
@Bean
fun keyCommands(reactiveRedisConnectionFactory: ReactiveRedisConnectionFactory): ReactiveKeyCommands {
return reactiveRedisConnectionFactory.reactiveConnection.keyCommands()
}
@Bean
fun stringCommands(reactiveRedisConnectionFactory: ReactiveRedisConnectionFactory): ReactiveStringCommands {
return reactiveRedisConnectionFactory.reactiveConnection.stringCommands()
}
}
локальный: 8080 / привод / здоровье
{
"status": "DOWN",
"details": {
"mongo": {
"status": "UP",
"details": {
"version": "4.0.8"
}
},
"diskSpace": {
"status": "UP",
"details": {
"total": 101241290752,
"free": 96678289408,
"threshold": 10485760
}
},
"redis": {
"status": "DOWN",
"details": {
"reactiveRedisConnectionFactory": {
"status": "UP",
"details": {
"version": "5.0.4"
}
},
"redisConnectionFactory": {
"status": "DOWN",
"details": {
"error": "org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379"
}
}
}
}
}
}