在Micronaut中配置Redis Sentinel

qvk1mo1f  于 2023-08-02  发布在  Redis
关注(0)|答案(2)|浏览(131)

我目前有一个正在运行的Redis应用程序,我想添加Redis Sentinel配置,以确保我的数据库的高可用性。有人能帮我在Micronaut中配置Redis Sentinel吗?
Application.yml文件:

redis:
  uri: redis-sentinel://localhost:26379,localhost:26380,localhost:26381/0#redismaster

字符串
我的主代码文件:

public class MyRedisRepository {

    private final RedisClient client;

    @Inject
    public MyRedisRepository (RedisClient client) {
        this.client = client;
    }

    public void save(String message) {
        StatefulRedisConnection<String, String> connection = client.connect();

        try {

            connection.sync().set("my-key", message);

            if (connection.sync().exec().wasDiscarded()) {
                log.error("While trying to save message Redis transaction has been discarded.");
            }
        } catch (Exception exc) {
            log.error("Exception occurred while saving message. Transaction discarded: {}", connection.sync().discard(), exc);
        }
    }    
}


在Docker中,我运行:

  • 3个Sentinel节点(172.21.0.4,172.21.0.5,172.21.0.7)
  • 1 Redis主节点(172.21.0.2)
  • 1 Redis从节点172.21.0.3)

不幸的是,我的应用程序并没有像预期的那样工作,并且抛出了一个错误:

Error starting Micronaut server: Unable to connect to 172.21.0.2:6379


其中172.21.0.2是IP Redis主Contatainer
我该如何解决这个问题?

ebdffaop

ebdffaop1#

你找到解决Micronaut和Sentinel的办法了吗?因为我有同样的问题和错误

8xiog9wr

8xiog9wr2#

不幸的是,只有在迁移到Kubernetes并将库更改为Jedis(允许使用证书)之后,我才设法建立了连接。

相关问题