From 9e3cbe6238e2e0b27ffe5a0061ecb148a6067fac Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Sat, 29 Jun 2024 17:06:52 +0800 Subject: [PATCH] =?UTF-8?q?enhancement=20#IA6E3Q=20redis=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E5=8F=AF=E4=BB=A5=E6=8C=87=E5=AE=9A?= =?UTF-8?q?Redisson=E7=9A=84=E9=93=BE=E6=8E=A5=E6=95=B0=EF=BC=8C=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=9A=84connections=E5=A4=AA=E5=A4=9A=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/redis/mode/RedisParserHelper.java | 27 ++++++++++--------- .../parser/redis/vo/RedisParserVO.java | 20 ++++++++++++++ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/mode/RedisParserHelper.java b/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/mode/RedisParserHelper.java index a5afeffc1..e6d80d51f 100644 --- a/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/mode/RedisParserHelper.java +++ b/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/mode/RedisParserHelper.java @@ -15,6 +15,7 @@ import com.yomahub.liteflow.parser.redis.vo.RedisParserVO; import com.yomahub.liteflow.util.RuleParsePluginUtil; import org.redisson.config.Config; import org.redisson.config.SentinelServersConfig; +import org.redisson.config.SingleServerConfig; /** * Redis 解析器通用接口 @@ -56,23 +57,19 @@ public interface RedisParserHelper { default Config getSingleRedissonConfig(RedisParserVO redisParserVO, Integer dataBase) { Config config = new Config(); String redisAddress = StrFormatter.format(SINGLE_REDIS_URL_PATTERN, redisParserVO.getHost(), redisParserVO.getPort()); + + SingleServerConfig singleServerConfig = config.useSingleServer().setAddress(redisAddress) + .setConnectionPoolSize(redisParserVO.getConnectionPoolSize()) + .setConnectionMinimumIdleSize(redisParserVO.getConnectionMinimumIdleSize()) + .setDatabase(dataBase); + //如果配置了用户名和密码 if (StrUtil.isNotBlank(redisParserVO.getUsername()) && StrUtil.isNotBlank(redisParserVO.getPassword())) { - config.useSingleServer().setAddress(redisAddress) - .setUsername(redisParserVO.getUsername()) - .setPassword(redisParserVO.getPassword()) - .setDatabase(dataBase); + singleServerConfig.setUsername(redisParserVO.getUsername()).setPassword(redisParserVO.getPassword()); } //如果配置了密码 else if (StrUtil.isNotBlank(redisParserVO.getPassword())) { - config.useSingleServer().setAddress(redisAddress) - .setPassword(redisParserVO.getPassword()) - .setDatabase(dataBase); - } - //没有配置密码 - else { - config.useSingleServer().setAddress(redisAddress) - .setDatabase(dataBase); + singleServerConfig.setPassword(redisParserVO.getPassword()); } return config; } @@ -86,7 +83,11 @@ public interface RedisParserHelper { default Config getSentinelRedissonConfig(RedisParserVO redisParserVO, Integer dataBase) { Config config = new Config(); SentinelServersConfig sentinelConfig = config.useSentinelServers() - .setMasterName(redisParserVO.getMasterName()); + .setMasterName(redisParserVO.getMasterName()) + .setMasterConnectionPoolSize(redisParserVO.getConnectionPoolSize()) + .setSlaveConnectionPoolSize(redisParserVO.getConnectionPoolSize()) + .setMasterConnectionMinimumIdleSize(redisParserVO.getConnectionMinimumIdleSize()) + .setSlaveConnectionMinimumIdleSize(redisParserVO.getConnectionMinimumIdleSize()); redisParserVO.getSentinelAddress().forEach(address -> { sentinelConfig.addSentinelAddress(StrFormatter.format(SENTINEL_REDIS_URL_PATTERN, address)); }); diff --git a/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/vo/RedisParserVO.java b/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/vo/RedisParserVO.java index 7aeaecd70..558385fcd 100644 --- a/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/vo/RedisParserVO.java +++ b/liteflow-rule-plugin/liteflow-rule-redis/src/main/java/com/yomahub/liteflow/parser/redis/vo/RedisParserVO.java @@ -35,6 +35,10 @@ public class RedisParserVO { /*密码*/ private String password; + private int connectionMinimumIdleSize = 2; + + private int connectionPoolSize = 4; + /*监听机制 轮询为poll 订阅为subscribe 默认为poll*/ private RedisParserMode mode = RedisParserMode.POLL; @@ -182,6 +186,22 @@ public class RedisParserVO { this.scriptKey = scriptKey; } + public int getConnectionPoolSize() { + return connectionPoolSize; + } + + public void setConnectionPoolSize(int connectionPoolSize) { + this.connectionPoolSize = connectionPoolSize; + } + + public int getConnectionMinimumIdleSize() { + return connectionMinimumIdleSize; + } + + public void setConnectionMinimumIdleSize(int connectionMinimumIdleSize) { + this.connectionMinimumIdleSize = connectionMinimumIdleSize; + } + @Override public String toString() { return "RedisParserVO{" +