From 91051af3dedd5e39c9351ac9519e2972ffe32ca9 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 3 Jun 2020 08:43:32 +0300 Subject: [PATCH] Fixed - the first online Sentinel hostname in Redisson config isn't resolved at startup. #2813 --- .../redisson/connection/SentinelConnectionManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index 1de42b6e5..83c67632b 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -87,13 +87,18 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { checkAuth(cfg); - Throwable lastException = null; for (String address : cfg.getSentinelAddresses()) { RedisURI addr = new RedisURI(address); addr = applyNatMap(addr); if (NetUtil.createByteArrayFromIpAddressString(addr.getHost()) == null && !addr.getHost().equals("localhost")) { sentinelHosts.add(addr); } + } + + Throwable lastException = null; + for (String address : cfg.getSentinelAddresses()) { + RedisURI addr = new RedisURI(address); + addr = applyNatMap(addr); RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getTimeout(), null); try { @@ -111,6 +116,9 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { if (master == null) { throw new RedisConnectionException("Master node is undefined! SENTINEL GET-MASTER-ADDR-BY-NAME command returns empty result!"); } + + RFuture sentinelFuture = registerSentinel(addr, this.config, null); + sentinelFuture.sync(); RedisURI masterHost = toURI(master.getHostString(), String.valueOf(master.getPort())); this.config.setMasterAddress(masterHost.toString());