1

I have lettuce client with springboot 2.3.9.RELEASE to connect AWS redis elasticcache master/slave. I'am able to write and read but a error is thrown every 5000ms

The service works fine for my pourpose but I want to remove the error or how to know to fix it.

I've read a lot about it and the best way to configure spring data redis with lettuce ans AWS is using RedisStaticMasterReplicaConfiguration to write to master and read from replica.

This is the bean configuration

    @Bean
    public LettuceConnectionFactory redisConnectionFactory() {

        LettuceClientConfiguration.LettuceClientConfigurationBuilder lettuceConfigBuilder = LettuceClientConfiguration.builder()
                .readFrom(ReadFrom.REPLICA_PREFERRED);
        lettuceConfigBuilder.useSsl();

        RedisStaticMasterReplicaConfiguration redisConfiguration = new RedisStaticMasterReplicaConfiguration(master, port); //master value is the Primary Endpoint value from aws elasticcache info
        redisConfiguration.addNode(replica, port); //replica value is the Reader Endpoint value from aws elasticcache info
        redisConfiguration.setPassword(password);

        return new LettuceConnectionFactory(redisConfiguration, lettuceConfigBuilder.build());
    }

When application is started I'm able to write and read but every 5 seconds an error is thrown from RedisMessageListenerContainer

"level":"ERROR","className":"org.springframework.data.redis.listener.RedisMessageListenerContainer","message":"Connection failure occurred. Restarting subscription task after 5000 ms "

But this is the original error from RedisMessageListenerContainer.handleSubscriptionException

java.lang.UnsupportedOperationException: Pub/Sub connections not supported with Master/Replica configurations
jagr
  • 309
  • 1
  • 6
  • 16

1 Answers1

0

Unfortunately, RedisStaticMasterReplicaConfiguration does not support pub/sub. See below for details.

https://docs.spring.io/spring-data/redis/docs/current/reference/html/#redis:write-to-master-read-from-replica

For environments reporting non-public addresses through the INFO command (for example, when using AWS), use RedisStaticMasterReplicaConfiguration instead of RedisStandaloneConfiguration. Please note that RedisStaticMasterReplicaConfiguration does not support Pub/Sub because of missing Pub/Sub message propagation across individual servers.