首页 文章

Redisson尝试连接到内部redis IP,而不是在config中指定的浮动redis IP

提问于
浏览
1

我正在使用redisson和ratpack . 下面是我为redisson设置的配置 .

Config redissionConfig = new Config();
redissionConfig.setTransportMode(TransportMode.EPOLL);
redissionConfig.useClusterServers()
    .addNodeAddress(System.getenv("redis_url"))
    .addNodeAddress("redis://XXX.XX.XXX.X:6379","redis://XXX.XX.XXX.X:6379","redis://XXX.XX.XXX.X:6379",
                    "redis://XXX.XX.XXX.X:6379","redis://XXX.XX.XXX.X:6379",
                    "redis://XXX.XX.XXX.X:6379","redis://XXX.XX.XXX.X:6379",
                    "redis://XXX.XX.XXX.X:6379","redis://XXX.XX.XXX.X:6379")
    .setPassword(System.getenv("redis_password"))
    .setKeepAlive(config.keepAlive)
    .setPingTimeout(1000)
    .setConnectTimeout((int) config.getConnectTimeoutMillis())
    .setFailedSlaveReconnectionInterval(30000)
    .setReadMode(ReadMode.MASTER_SLAVE)
    .setMasterConnectionPoolSize(100)
    .setIdleConnectionTimeout(60000)
    .setSlaveConnectionPoolSize(100)
    .setRetryAttempts(2);
RedissonClient redclient = Redisson.create(redissionConfig);
redclient.getKeys();
redclient.getLock("").delete();

我在配置中添加了所有主IP和从IP作为节点地址,上面添加的IP是浮动IP . Redisson能够与除一个主节点之外的所有节点 Build 连接 . 但是,相同的错误消息显示主节点的内部IP,而不是我在redisson配置中添加的浮动IP . 我得到的错误消息如下

{"timeMillis":1522752497107,"thread":"redisson-netty-9-8","level":"ERROR","loggerName":"org.redisson.cluster.ClusterConnectionManager","message":"Can't connect to master: redis://192.168.197.2:6379 with slot ranges: [[0-5460]]","endOfBatch":true,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","contextMap":{},"threadId":48,"threadPriority":5}

接下来是RedisConnectionException:

org.redisson.client.RedisConnectionException: Not all slots are covered! Only 10923 slots are avaliable

对此事的任何见解都非常感谢 .

1 回答

  • 0

    在群集模式下,您无需指定所有Redis节点 . 只需要一个节点 . Redisson从第一个可用的Redis节点获取集群信息 . 检查Redis群集配置 . 它包含错误的Redis ip .

相关问题