RedisLabs / redis-cluster-proxy

A proxy for Redis clusters.
GNU Affero General Public License v3.0
990 stars 129 forks source link

Will 'HELLO' command be supported later? #102

Open iwfun opened 2 years ago

iwfun commented 2 years ago

lettuce 不能使用,因为 此项目(redis-cluster-proxy)不支持 hello 指令,建议增加支持

iwfun commented 2 years ago

hi, I want to use 'lettuce' to connect to this proxy, but its fail! The reason is that 'lettuce' need ‘HELLO’ command. Will this be supported later?

jaggerwang commented 2 years ago

Same issue in spring session redis.

/usr/local/Cellar/openjdk@11/11.0.10/libexec/openjdk.jdk/Contents/Home/bin/java -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=64582:/Applications/IntelliJ IDEA.app/Contents/bin -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath /Users/jagger/projects/bf/basicai/backend/gateway/target/classes:/Users/jagger/.m2/repository/org/projectlombok/lombok/1.18.22/lombok-1.18.22.jar:/Users/jagger/.m2/repository/org/apache/commons/commons-pool2/2.11.1/commons-pool2-2.11.1.jar:/Users/jagger/.m2/repository/org/springframework/session/spring-session-data-redis/2.6.1/spring-session-data-redis-2.6.1.jar:/Users/jagger/.m2/repository/org/springframework/session/spring-session-core/2.6.1/spring-session-core-2.6.1.jar:/Users/jagger/.m2/repository/org/springframework/spring-jcl/5.3.14/spring-jcl-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/data/spring-data-redis/2.6.0/spring-data-redis-2.6.0.jar:/Users/jagger/.m2/repository/org/springframework/data/spring-data-keyvalue/2.6.0/spring-data-keyvalue-2.6.0.jar:/Users/jagger/.m2/repository/org/springframework/spring-tx/5.3.14/spring-tx-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-oxm/5.3.14/spring-oxm-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-context-support/5.3.14/spring-context-support-5.3.14.jar:/Users/jagger/.m2/repository/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-webflux/2.6.2/spring-boot-starter-webflux-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter/2.6.2/spring-boot-starter-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.6.2/spring-boot-starter-logging-2.6.2.jar:/Users/jagger/.m2/repository/ch/qos/logback/logback-classic/1.2.9/logback-classic-1.2.9.jar:/Users/jagger/.m2/repository/ch/qos/logback/logback-core/1.2.9/logback-core-1.2.9.jar:/Users/jagger/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.17.0/log4j-to-slf4j-2.17.0.jar:/Users/jagger/.m2/repository/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:/Users/jagger/.m2/repository/org/slf4j/jul-to-slf4j/1.7.32/jul-to-slf4j-1.7.32.jar:/Users/jagger/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/Users/jagger/.m2/repository/org/yaml/snakeyaml/1.29/snakeyaml-1.29.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.6.2/spring-boot-starter-json-2.6.2.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.13.1/jackson-datatype-jdk8-2.13.1.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.13.1/jackson-datatype-jsr310-2.13.1.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.13.1/jackson-module-parameter-names-2.13.1.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-reactor-netty/2.6.2/spring-boot-starter-reactor-netty-2.6.2.jar:/Users/jagger/.m2/repository/io/projectreactor/netty/reactor-netty-http/1.0.14/reactor-netty-http-1.0.14.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-http/4.1.72.Final/netty-codec-http-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-http2/4.1.72.Final/netty-codec-http2-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-resolver-dns/4.1.72.Final/netty-resolver-dns-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.72.Final/netty-resolver-dns-native-macos-4.1.72.Final-osx-x86_64.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-native-epoll/4.1.72.Final/netty-transport-native-epoll-4.1.72.Final-linux-x86_64.jar:/Users/jagger/.m2/repository/io/projectreactor/netty/reactor-netty-core/1.0.14/reactor-netty-core-1.0.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-web/5.3.14/spring-web-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-beans/5.3.14/spring-beans-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-webflux/5.3.14/spring-webflux-5.3.14.jar:/Users/jagger/.m2/repository/io/projectreactor/reactor-core/3.4.13/reactor-core-3.4.13.jar:/Users/jagger/.m2/repository/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-data-redis/2.6.2/spring-boot-starter-data-redis-2.6.2.jar:/Users/jagger/.m2/repository/io/lettuce/lettuce-core/6.1.5.RELEASE/lettuce-core-6.1.5.RELEASE.jar:/Users/jagger/.m2/repository/io/netty/netty-common/4.1.72.Final/netty-common-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-handler/4.1.72.Final/netty-handler-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-resolver/4.1.72.Final/netty-resolver-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-buffer/4.1.72.Final/netty-buffer-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec/4.1.72.Final/netty-codec-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-tcnative-classes/2.0.46.Final/netty-tcnative-classes-2.0.46.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport/4.1.72.Final/netty-transport-4.1.72.Final.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-security/2.6.2/spring-boot-starter-security-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/spring-aop/5.3.14/spring-aop-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/security/spring-security-config/5.6.1/spring-security-config-5.6.1.jar:/Users/jagger/.m2/repository/org/springframework/spring-context/5.3.14/spring-context-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/security/spring-security-web/5.6.1/spring-security-web-5.6.1.jar:/Users/jagger/.m2/repository/org/springframework/spring-expression/5.3.14/spring-expression-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/2.6.2/spring-boot-starter-actuator-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/2.6.2/spring-boot-actuator-autoconfigure-2.6.2.jar:/Users/jagger/.m2/repository/io/micrometer/micrometer-core/1.8.1/micrometer-core-1.8.1.jar:/Users/jagger/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar:/Users/jagger/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-devtools/2.6.2/spring-boot-devtools-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot/2.6.2/spring-boot-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.6.2/spring-boot-autoconfigure-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-configuration-processor/2.6.2/spring-boot-configuration-processor-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-starter-gateway/3.1.0/spring-cloud-starter-gateway-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-starter/3.1.0/spring-cloud-starter-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-context/3.1.0/spring-cloud-context-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/security/spring-security-rsa/1.0.10.RELEASE/spring-security-rsa-1.0.10.RELEASE.jar:/Users/jagger/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.68/bcpkix-jdk15on-1.68.jar:/Users/jagger/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.68/bcprov-jdk15on-1.68.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-gateway-server/3.1.0/spring-cloud-gateway-server-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-validation/2.6.2/spring-boot-starter-validation-2.6.2.jar:/Users/jagger/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.56/tomcat-embed-el-9.0.56.jar:/Users/jagger/.m2/repository/org/hibernate/validator/hibernate-validator/6.2.0.Final/hibernate-validator-6.2.0.Final.jar:/Users/jagger/.m2/repository/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar:/Users/jagger/.m2/repository/org/jboss/logging/jboss-logging/3.4.2.Final/jboss-logging-3.4.2.Final.jar:/Users/jagger/.m2/repository/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar:/Users/jagger/.m2/repository/io/projectreactor/addons/reactor-extra/3.4.6/reactor-extra-3.4.6.jar:/Users/jagger/.m2/repository/com/playtika/reactivefeign/feign-reactor-spring-configuration/3.1.5/feign-reactor-spring-configuration-3.1.5.jar:/Users/jagger/.m2/repository/com/playtika/reactivefeign/feign-reactor-core/3.1.5/feign-reactor-core-3.1.5.jar:/Users/jagger/.m2/repository/com/playtika/reactivefeign/feign-reactor-cloud/3.1.5/feign-reactor-cloud-3.1.5.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-starter-loadbalancer/3.1.0/spring-cloud-starter-loadbalancer-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-loadbalancer/3.1.0/spring-cloud-loadbalancer-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-cache/2.6.2/spring-boot-starter-cache-2.6.2.jar:/Users/jagger/.m2/repository/com/stoyanr/evictor/1.0.0/evictor-1.0.0.jar:/Users/jagger/.m2/repository/com/playtika/reactivefeign/feign-reactor-webclient/3.1.5/feign-reactor-webclient-3.1.5.jar:/Users/jagger/.m2/repository/com/playtika/reactivefeign/feign-reactor-webclient-core/3.1.5/feign-reactor-webclient-core-3.1.5.jar:/Users/jagger/.m2/repository/io/projectreactor/netty/reactor-netty/1.0.14/reactor-netty-1.0.14.jar:/Users/jagger/.m2/repository/io/projectreactor/netty/incubator/reactor-netty-incubator-quic/0.0.3/reactor-netty-incubator-quic-0.0.3.jar:/Users/jagger/.m2/repository/io/netty/incubator/netty-incubator-codec-native-quic/0.0.24.Final/netty-incubator-codec-native-quic-0.0.24.Final-linux-x86_64.jar:/Users/jagger/.m2/repository/io/netty/incubator/netty-incubator-codec-classes-quic/0.0.24.Final/netty-incubator-codec-classes-quic-0.0.24.Final.jar:/Users/jagger/.m2/repository/commons-codec/commons-codec/1.15/commons-codec-1.15.jar:/Users/jagger/.m2/repository/io/projectreactor/netty/reactor-netty-http-brave/1.0.14/reactor-netty-http-brave-1.0.14.jar:/Users/jagger/.m2/repository/io/zipkin/brave/brave-instrumentation-http/5.13.2/brave-instrumentation-http-5.13.2.jar:/Users/jagger/.m2/repository/io/zipkin/brave/brave/5.13.2/brave-5.13.2.jar:/Users/jagger/.m2/repository/io/zipkin/reporter2/zipkin-reporter-brave/2.16.1/zipkin-reporter-brave-2.16.1.jar:/Users/jagger/.m2/repository/io/zipkin/reporter2/zipkin-reporter/2.16.1/zipkin-reporter-2.16.1.jar:/Users/jagger/.m2/repository/io/zipkin/zipkin2/zipkin/2.23.0/zipkin-2.23.0.jar:/Users/jagger/.m2/repository/io/netty/netty-all/4.1.72.Final/netty-all-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-dns/4.1.72.Final/netty-codec-dns-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-haproxy/4.1.72.Final/netty-codec-haproxy-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-memcache/4.1.72.Final/netty-codec-memcache-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-mqtt/4.1.72.Final/netty-codec-mqtt-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-redis/4.1.72.Final/netty-codec-redis-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-smtp/4.1.72.Final/netty-codec-smtp-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-socks/4.1.72.Final/netty-codec-socks-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-stomp/4.1.72.Final/netty-codec-stomp-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-codec-xml/4.1.72.Final/netty-codec-xml-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-handler-proxy/4.1.72.Final/netty-handler-proxy-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-rxtx/4.1.72.Final/netty-transport-rxtx-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-sctp/4.1.72.Final/netty-transport-sctp-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-udt/4.1.72.Final/netty-transport-udt-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.72.Final/netty-transport-classes-epoll-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.72.Final/netty-transport-native-unix-common-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.72.Final/netty-transport-classes-kqueue-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-resolver-dns-classes-macos/4.1.72.Final/netty-resolver-dns-classes-macos-4.1.72.Final.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-native-epoll/4.1.72.Final/netty-transport-native-epoll-4.1.72.Final-linux-aarch_64.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.72.Final/netty-transport-native-kqueue-4.1.72.Final-osx-x86_64.jar:/Users/jagger/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.72.Final/netty-transport-native-kqueue-4.1.72.Final-osx-aarch_64.jar:/Users/jagger/.m2/repository/io/netty/netty-resolver-dns-native-macos/4.1.72.Final/netty-resolver-dns-native-macos-4.1.72.Final-osx-aarch_64.jar:/Users/jagger/.m2/repository/org/springframework/spring-core/5.3.14/spring-core-5.3.14.jar:/Users/jagger/.m2/repository/ai/basic/basicai/common/1.0.0-SNAPSHOT/common-1.0.0-SNAPSHOT.jar:/Users/jagger/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.1/jackson-core-2.13.1.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.1/jackson-databind-2.13.1.jar:/Users/jagger/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.1/jackson-annotations-2.13.1.jar:/Users/jagger/.m2/repository/io/github/openfeign/feign-core/11.7/feign-core-11.7.jar:/Users/jagger/.m2/repository/org/springframework/security/spring-security-core/5.6.1/spring-security-core-5.6.1.jar:/Users/jagger/.m2/repository/org/springframework/security/spring-security-crypto/5.6.1/spring-security-crypto-5.6.1.jar:/Users/jagger/.m2/repository/org/springframework/data/spring-data-jpa/2.6.0/spring-data-jpa-2.6.0.jar:/Users/jagger/.m2/repository/org/springframework/data/spring-data-commons/2.6.0/spring-data-commons-2.6.0.jar:/Users/jagger/.m2/repository/org/springframework/spring-orm/5.3.14/spring-orm-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/spring-jdbc/5.3.14/spring-jdbc-5.3.14.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-actuator/2.6.2/spring-boot-actuator-2.6.2.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-commons/3.1.0/spring-cloud-commons-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/cloud/spring-cloud-openfeign-core/3.1.0/spring-cloud-openfeign-core-3.1.0.jar:/Users/jagger/.m2/repository/org/springframework/boot/spring-boot-starter-aop/2.6.2/spring-boot-starter-aop-2.6.2.jar:/Users/jagger/.m2/repository/org/aspectj/aspectjweaver/1.9.7/aspectjweaver-1.9.7.jar:/Users/jagger/.m2/repository/io/github/openfeign/form/feign-form-spring/3.8.0/feign-form-spring-3.8.0.jar:/Users/jagger/.m2/repository/io/github/openfeign/form/feign-form/3.8.0/feign-form-3.8.0.jar:/Users/jagger/.m2/repository/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar:/Users/jagger/.m2/repository/commons-io/commons-io/2.2/commons-io-2.2.jar ai.basic.basicai.gateway.adapter.api.Application
12:16:53.474 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@67fafcb0

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.2)

2022-01-22 12:16:54.977  INFO 7256 --- [  restartedMain] a.b.b.gateway.adapter.api.Application    : Starting Application using Java 11.0.10 on jagger-mbp with PID 7256 (/Users/jagger/projects/bf/basicai/backend/gateway/target/classes started by jagger in /Users/jagger/projects/bf/basicai/backend/gateway)
2022-01-22 12:16:54.981  INFO 7256 --- [  restartedMain] a.b.b.gateway.adapter.api.Application    : No active profile set, falling back to default profiles: default
2022-01-22 12:16:55.176  INFO 7256 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2022-01-22 12:16:55.177  INFO 7256 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2022-01-22 12:16:59.142  INFO 7256 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2022-01-22 12:16:59.145  INFO 7256 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2022-01-22 12:16:59.175  INFO 7256 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 9 ms. Found 0 Redis repository interfaces.
2022-01-22 12:16:59.652  INFO 7256 --- [  restartedMain] o.s.cloud.context.scope.GenericScope     : BeanFactory id=e435dd77-a2f8-36bb-aa38-d192f16b13fe
2022-01-22 12:16:59.737  INFO 7256 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'ai.basic.basicai.gateway.usecase.port.service.UserService' of type [reactivefeign.spring.config.ReactiveFeignClientFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2022-01-22 12:16:59.847  INFO 7256 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2022-01-22 12:16:59.848  INFO 7256 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig' of type [org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2022-01-22 12:16:59.850  INFO 7256 --- [  restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' of type [org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2022-01-22 12:17:00.784  INFO 7256 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [After]
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Before]
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Between]
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Cookie]
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Header]
2022-01-22 12:17:02.157  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Host]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Method]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Path]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Query]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [ReadBody]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [RemoteAddr]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Weight]
2022-01-22 12:17:02.158  INFO 7256 --- [  restartedMain] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [CloudFoundryRouteService]
2022-01-22 12:17:03.163  INFO 7256 --- [  restartedMain] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 16 endpoint(s) beneath base path '/actuator'
2022-01-22 12:17:03.422  WARN 7256 --- [  restartedMain] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2022-01-22 12:17:03.560  INFO 7256 --- [  restartedMain] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
2022-01-22 12:17:03.590  INFO 7256 --- [  restartedMain] a.b.b.gateway.adapter.api.Application    : Started Application in 10.095 seconds (JVM running for 13.07)
2022-01-22 12:17:04.778  WARN 7256 --- [oundedElastic-1] o.s.b.a.r.RedisReactiveHealthIndicator   : Redis health check failed

org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to nlb.dev.basic.ai:6379
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1689) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1597) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1383) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1366) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedReactiveConnection(LettuceConnectionFactory.java:1117) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:509) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:103) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:86) ~[reactor-core-3.4.13.jar:3.4.13]
    at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:227) ~[reactor-core-3.4.13.jar:3.4.13]
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.4.13.jar:3.4.13]
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.4.13.jar:3.4.13]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to nlb.dev.basic.ai:6379
    at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.getConnection(LettucePoolingConnectionProvider.java:109) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1595) ~[spring-data-redis-2.6.0.jar:2.6.0]
    ... 14 common frames omitted
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to nlb.dev.basic.ai:6379
    at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:330) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.RedisClient.connect(RedisClient.java:216) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at java.base/java.util.Optional.orElseGet(Optional.java:369) ~[na:na]
    at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.lambda$null$0(LettucePoolingConnectionProvider.java:97) ~[spring-data-redis-2.6.0.jar:2.6.0]
    at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:211) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:201) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:70) ~[commons-pool2-2.11.1.jar:2.11.1]
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571) ~[commons-pool2-2.11.1.jar:2.11.1]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298) ~[commons-pool2-2.11.1.jar:2.11.1]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223) ~[commons-pool2-2.11.1.jar:2.11.1]
    at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:122) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:117) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.getConnection(LettucePoolingConnectionProvider.java:103) ~[spring-data-redis-2.6.0.jar:2.6.0]
    ... 15 common frames omitted
Caused by: io.lettuce.core.RedisCommandExecutionException: ERR unsupported command `hello`
    at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:137) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:110) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:746) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:681) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:598) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.kqueue.AbstractKQueueStreamChannel$KQueueStreamUnsafe.readReady(AbstractKQueueStreamChannel.java:544) ~[netty-transport-classes-kqueue-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:383) ~[netty-transport-classes-kqueue-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:211) ~[netty-transport-classes-kqueue-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:289) ~[netty-transport-classes-kqueue-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
    ... 1 common frames omitted
gmoirod commented 1 year ago

Does anybody made it work with Jedis connector ?

gmoirod commented 1 year ago

Does anybody made it work with Jedis connector ?

It turns out it works with Jedis connector. But you may loose some feature according to https://docs.spring.io/spring-data-redis/docs/current/reference/html/#redis:connectors:connection

Here is the Maven config snippet for a Spring Boot application :

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.lettuce</groupId>
                    <artifactId>lettuce-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
boof commented 1 year ago

It also breaks Sidekiq 7+ since it uses a library redis-client which requires HELLO to go into RESP3.

j4rs commented 1 year ago

Any update on when RESP3 is gonna be supported? - thanks.

saffraan commented 1 year ago

Any update on when RESP3 is gonna be supported? - thanks.

his project has been not updated in recently two years. but I think it's easy to support RESP3, just to run Hello command after proxy connects to redis servers, and client don't need to run Hello. But the client using resp v2 will not be support, if u do that.