【问题标题】:Spring data redis with lettuce client and AWS elasticcache带有生菜客户端和 AWS elasticache 的 Spring 数据 redis
【发布时间】:2021-07-04 11:49:03
【问题描述】:

我有带有 springboot 2.3.9.RELEASE 的生菜客户端来连接 AWS redis elasticcache 主/从。 我可以读写,但每 5000 毫秒会抛出一个错误

该服务适用于我的 pourpose,但我想删除错误或如何知道如何修复它。

我已经阅读了很多关于它的内容,使用生菜和 AWS 配置 Spring Data Redis 的最佳方法是使用 RedisStaticMasterReplicaConfiguration 写入主副本并从副本读取。

这是 bean 配置

    @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());
    }

当应用程序启动时,我可以读写,但每 5 秒就会从 RedisMessageListenerContainer 抛出一个错误

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

但这是来自 RedisMessageListenerContainer.handleSubscriptionException 的原始错误

java.lang.UnsupportedOperationException: Pub/Sub connections not supported with Master/Replica configurations

【问题讨论】:

    标签: amazon-web-services spring-boot spring-data-redis lettuce elastic-cache


    【解决方案1】:

    很遗憾,RedisStaticMasterReplicaConfiguration 不支持发布/订阅。 详情见下文。

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

    对于通过 INFO 命令报告非公共地址的环境(例如,使用 AWS 时),请使用 RedisStaticMasterReplicaConfiguration 而不是 RedisStandaloneConfiguration。请注意,RedisStaticMasterReplicaConfiguration 不支持 Pub/Sub,因为缺少跨单个服务器的 Pub/Sub 消息传播。

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 2015-12-16
      • 2020-10-26
      • 2019-04-23
      • 2014-04-11
      • 2017-01-27
      • 2018-04-29
      • 2013-09-23
      • 2020-06-03
      相关资源
      最近更新 更多