Redisson 尝试连接到内部 redis IP,而不是配置中指定的浮动 redis IP
Redisson tries to connect to internal redis IP instead of floating redis IP specified in config
我正在使用带有 ratpack 的 redisson。下面是我为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。 Redisson 能够与除一个主节点之外的所有节点建立连接。但是,相同的错误消息显示主节点的内部 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
非常感谢任何对此问题的见解。
在集群模式下,您不需要指定所有 Redis 节点。只需要一个节点。 Redisson 从第一个可用的 Redis 节点获取集群信息。检查您的 Redis 集群配置。它包含错误的 Redis ip。
我正在使用带有 ratpack 的 redisson。下面是我为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。 Redisson 能够与除一个主节点之外的所有节点建立连接。但是,相同的错误消息显示主节点的内部 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
非常感谢任何对此问题的见解。
在集群模式下,您不需要指定所有 Redis 节点。只需要一个节点。 Redisson 从第一个可用的 Redis 节点获取集群信息。检查您的 Redis 集群配置。它包含错误的 Redis ip。