enhancement #IA6E3Q redis配置的时候可以指定Redisson的链接数,默认的connections太多了

This commit is contained in:
everywhere.z
2024-06-29 17:06:52 +08:00
parent d923cb45e0
commit 9e3cbe6238
2 changed files with 34 additions and 13 deletions

View File

@@ -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));
});

View File

@@ -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{" +