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 集群信息不包含任何有关它的信息。