From 935ca1a50ffc22231fa7a7c8d789b6e13e910878 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 31 Jan 2024 14:28:47 +0300 Subject: [PATCH] Fixed - Repeated new connections with AWS Elasticache serverless #5589 --- .../java/org/redisson/cluster/ClusterConnectionManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index 3e0880837..1d7833b85 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -846,11 +846,13 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { CompletableFuture> ipsFuture = serviceManager.resolveAll(clusterNodeInfo.getAddress()); CompletableFuture f = ipsFuture.thenAccept(addresses -> { + int index = 0; if (addresses.size() > 1) { addresses.sort(Comparator.comparing(RedisURI::getHost)); - Collections.shuffle(addresses, new Random(serviceManager.getId().hashCode())); + Random r = new Random(serviceManager.getId().hashCode()); + index = r.nextInt(addresses.size()); } - RedisURI address = addresses.get(0); + RedisURI address = addresses.get(index); if (clusterNodeInfo.containsFlag(Flag.SLAVE)) { ClusterPartition masterPartition = partitions.computeIfAbsent(masterId, k -> new ClusterPartition(masterId));