1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package org.jeecg.boot.starter.lock.core.strategy.impl;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy;
- import org.jeecg.boot.starter.lock.prop.RedissonProperties;
- import org.jeecg.boot.starter.lock.enums.GlobalConstant;
- import org.redisson.config.Config;
- /**
- * 哨兵方式Redis连接配置
- * 比如sentinel.conf里配置为sentinel monitor my-sentinel-name 127.0.0.1 6379 2,那么这里就配置my-sentinel-name
- * 配置方式:my-sentinel-name,127.0.0.1:26379,127.0.0.1:26389,127.0.0.1:26399
- * @author zyf
- * @date 2020-11-11
- */
- @Slf4j
- public class SentinelRedissonConfigStrategyImpl implements RedissonConfigStrategy {
- @Override
- public Config createRedissonConfig(RedissonProperties redissonProperties) {
- Config config = new Config();
- try {
- String address = redissonProperties.getAddress();
- String password = redissonProperties.getPassword();
- int database = redissonProperties.getDatabase();
- String[] addrTokens = address.split(",");
- String sentinelAliasName = addrTokens[0];
- // 设置redis配置文件sentinel.conf配置的sentinel别名
- config.useSentinelServers().setMasterName(sentinelAliasName);
- config.useSentinelServers().setDatabase(database);
- if (StringUtils.isNotBlank(password)) {
- config.useSentinelServers().setPassword(password);
- }
- // 设置哨兵节点的服务IP和端口
- for (int i = 1; i < addrTokens.length; i++) {
- config.useSentinelServers().addSentinelAddress(GlobalConstant.REDIS_CONNECTION_PREFIX+ addrTokens[i]);
- }
- log.info("初始化哨兵方式Config,redisAddress:" + address);
- } catch (Exception e) {
- log.error("哨兵Redisson初始化错误", e);
- e.printStackTrace();
- }
- return config;
- }
- }
|