From 7bf7e529069068e3cb745c2b3c07c2f4b76de4ce Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 27 Jan 2020 09:23:23 +0300 Subject: [PATCH] Feature - checkSentinelsList setting added --- .../config/SentinelServersConfig.java | 19 +++++++++++++++++++ .../connection/SentinelConnectionManager.java | 11 ++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/redisson/src/main/java/org/redisson/config/SentinelServersConfig.java b/redisson/src/main/java/org/redisson/config/SentinelServersConfig.java index fc9420ce4..2e8454121 100644 --- a/redisson/src/main/java/org/redisson/config/SentinelServersConfig.java +++ b/redisson/src/main/java/org/redisson/config/SentinelServersConfig.java @@ -47,6 +47,8 @@ public class SentinelServersConfig extends BaseMasterSlaveServersConfig + * Default is true + * + * @param checkSentinelsList - boolean value + * @return config + */ + public SentinelServersConfig setCheckSentinelsList(boolean checkSentinelsList) { + this.checkSentinelsList = checkSentinelsList; + return this; + } } diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index 2e24e769f..8c5b4d5e1 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -166,9 +166,14 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } } - if (sentinels.isEmpty()) { - stopThreads(); - throw new RedisConnectionException("At least two sentinels should be defined in Redis configuration! SENTINEL SENTINELS command returns empty result!"); + if (cfg.isCheckSentinelsList()) { + if (sentinels.isEmpty()) { + stopThreads(); + throw new RedisConnectionException("SENTINEL SENTINELS command returns empty result! Set checkSentinelsList = false to avoid this check."); + } else if (sentinels.size() < 2) { + stopThreads(); + throw new RedisConnectionException("SENTINEL SENTINELS command returns less than 2 nodes! At least two sentinels should be defined in Redis configuration. Set checkSentinelsList = false to avoid this check."); + } } if (currentMaster.get() == null) {