org.redisson.client.RedisNodeNotFoundException:节点:尚未发现 NodeSource
org.redisson.client.RedisNodeNotFoundException: Node: NodeSource hasn't been discovered yet
我是 Redisson 的新手,我试图在 Redis 缓存的帮助下集成 redisson + spring 分布式锁引导。
我遇到以下错误:
org.redisson.client.RedisNodeNotFoundException: Node: NodeSource [slot=14577, addr=redis://10.150.77.93:6381, redisClient=null, redirect=MOVED, entry=null] 还没有被发现。
在 org.redisson.connection.MasterSlaveConnectionManager.createNodeNotFoundFuture(MasterSlaveConnectionManager.java:612) ~[redisson-3.11.3.jar:3.11.3]
在 org.redisson.connection.MasterSlaveConnectionManager.connectionWriteOp(MasterSlaveConnectionManager.java:564) ~[redisson-3.11.3.jar:3.11.3]
在 org.redisson.command.RedisExecutor.getConnection(RedisExecutor.java:671) ~[redisson-3.11.3.jar:3.11.3]
在 org.redisson.command.RedisExecutor.execute(RedisExecutor.java:134) ~[redisson-3.11.3.jar:3.11.3]
在 org.redisson.command.RedisExecutor$2.run(RedisExecutor.java:273) ~[redisson-3.11.3.jar:3.11.3]
在 io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:668) ~[netty-common-4.1.25.Final.jar:4.1.25.Final]
在 io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:743) ~[netty-common-4.1.25.Final.jar:4.1.25.Final]
在 io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:471) ~[netty-common-4.1.25.Final.jar:4.1.25.Final]
在 java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
Redis 缓存由 Spring 启动自动配置,我已经为主从集群配置了 RedissonClient。
@Configuration
public class RedissonConfiguration
{
@Bean
RedissonClient redissonClient(Config config)
{
return Redisson.create(config);
}
@Bean
Config config()
{
Config config = new Config();
config.useMasterSlaveServers().setMasterAddress("redis://10.150.77.91:6381")
.addSlaveAddress("redis://10.150.77.93:6382");
return config;
}
}
@Component
public class TriggerHandler
{
private static final Logger LOGGER = LoggerFactory.getLogger(TriggerHandler.class);
@Autowired
RedissonClient redissonClient;
@Async
public void triggerEvent(AsyncEventTriggerRequest eventTriggerRequest)
{
String lockName = eventTriggerRequest.getTenantId().concat("lock");
RLock lock = redissonClient.getLock(lockName);
try
{
if(lock.tryLock(2,5, TimeUnit.SECONDS))
{
LOGGER.info("Lock has been Achieved for: {}", lockName);
}
}
catch (InterruptedException e)
{
lock.forceUnlock();
e.printStackTrace();
}
lock.unlock();
}
}
为什么失败了? Redisson 不会为 Redis 自动配置 redis 客户端吗?
此错误意味着尚未发现 Redis 节点 10.150.77.93,因为 Redis 集群信息不包含任何有关它的信息。
我是 Redisson 的新手,我试图在 Redis 缓存的帮助下集成 redisson + spring 分布式锁引导。
我遇到以下错误:
org.redisson.client.RedisNodeNotFoundException: Node: NodeSource [slot=14577, addr=redis://10.150.77.93:6381, redisClient=null, redirect=MOVED, entry=null] 还没有被发现。 在 org.redisson.connection.MasterSlaveConnectionManager.createNodeNotFoundFuture(MasterSlaveConnectionManager.java:612) ~[redisson-3.11.3.jar:3.11.3] 在 org.redisson.connection.MasterSlaveConnectionManager.connectionWriteOp(MasterSlaveConnectionManager.java:564) ~[redisson-3.11.3.jar:3.11.3] 在 org.redisson.command.RedisExecutor.getConnection(RedisExecutor.java:671) ~[redisson-3.11.3.jar:3.11.3] 在 org.redisson.command.RedisExecutor.execute(RedisExecutor.java:134) ~[redisson-3.11.3.jar:3.11.3] 在 org.redisson.command.RedisExecutor$2.run(RedisExecutor.java:273) ~[redisson-3.11.3.jar:3.11.3] 在 io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:668) ~[netty-common-4.1.25.Final.jar:4.1.25.Final] 在 io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:743) ~[netty-common-4.1.25.Final.jar:4.1.25.Final] 在 io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:471) ~[netty-common-4.1.25.Final.jar:4.1.25.Final] 在 java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
Redis 缓存由 Spring 启动自动配置,我已经为主从集群配置了 RedissonClient。
@Configuration
public class RedissonConfiguration
{
@Bean
RedissonClient redissonClient(Config config)
{
return Redisson.create(config);
}
@Bean
Config config()
{
Config config = new Config();
config.useMasterSlaveServers().setMasterAddress("redis://10.150.77.91:6381")
.addSlaveAddress("redis://10.150.77.93:6382");
return config;
}
}
@Component
public class TriggerHandler
{
private static final Logger LOGGER = LoggerFactory.getLogger(TriggerHandler.class);
@Autowired
RedissonClient redissonClient;
@Async
public void triggerEvent(AsyncEventTriggerRequest eventTriggerRequest)
{
String lockName = eventTriggerRequest.getTenantId().concat("lock");
RLock lock = redissonClient.getLock(lockName);
try
{
if(lock.tryLock(2,5, TimeUnit.SECONDS))
{
LOGGER.info("Lock has been Achieved for: {}", lockName);
}
}
catch (InterruptedException e)
{
lock.forceUnlock();
e.printStackTrace();
}
lock.unlock();
}
}
为什么失败了? Redisson 不会为 Redis 自动配置 redis 客户端吗?
此错误意味着尚未发现 Redis 节点 10.150.77.93,因为 Redis 集群信息不包含任何有关它的信息。