content: 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;
  
  
  /**
   * 集群方式Redisson配置
   * cluster方式至少6个节点(3主3从)
   * 配置方式:127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384
   *
   * @author zyf
   * @date 2020-11-11
   */
  @Slf4j
  public class ClusterRedissonConfigStrategyImpl implements RedissonConfigStrategy {
  
      @Override
      public Config createRedissonConfig(RedissonProperties redissonProperties) {
          Config config = new Config();
          try {
              String address = redissonProperties.getAddress();
              String password = redissonProperties.getPassword();
              String[] addrTokens = address.split(",");
              // 设置集群(cluster)节点的服务IP和端口
              for (int i = 0; i < addrTokens.length; i++) {
                  config.useClusterServers().addNodeAddress(GlobalConstant.REDIS_CONNECTION_PREFIX + addrTokens[i]);
                  if (StringUtils.isNotBlank(password)) {
                      config.useClusterServers().setPassword(password);
                  }
              }
              log.info("初始化集群方式Config,连接地址:" + address);
          } catch (Exception e) {
              log.error("集群Redisson初始化错误", e);
              e.printStackTrace();
          }
          return config;
      }
  }
  