7d73343d7292d6a159b91b5ad34e49fd358c098e.svn-base 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package org.jeecg.boot.starter.lock.core.strategy.impl;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.apache.commons.lang3.StringUtils;
  4. import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy;
  5. import org.jeecg.boot.starter.lock.prop.RedissonProperties;
  6. import org.jeecg.boot.starter.lock.enums.GlobalConstant;
  7. import org.redisson.config.Config;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. /**
  11. * 主从方式Redisson配置
  12. * <p>配置方式: 127.0.0.1:6379(主),127.0.0.1:6380(子),127.0.0.1:6381(子)</p>
  13. *
  14. * @author zyf
  15. * @date 2020-11-11
  16. */
  17. @Slf4j
  18. public class MasterslaveRedissonConfigStrategyImpl implements RedissonConfigStrategy {
  19. @Override
  20. public Config createRedissonConfig(RedissonProperties redissonProperties) {
  21. Config config = new Config();
  22. try {
  23. String address = redissonProperties.getAddress();
  24. String password = redissonProperties.getPassword();
  25. int database = redissonProperties.getDatabase();
  26. String[] addrTokens = address.split(",");
  27. String masterNodeAddr = addrTokens[0];
  28. // 设置主节点ip
  29. config.useMasterSlaveServers().setMasterAddress(masterNodeAddr);
  30. if (StringUtils.isNotBlank(password)) {
  31. config.useMasterSlaveServers().setPassword(password);
  32. }
  33. config.useMasterSlaveServers().setDatabase(database);
  34. // 设置从节点,移除第一个节点,默认第一个为主节点
  35. List<String> slaveList = new ArrayList<>();
  36. for (String addrToken : addrTokens) {
  37. slaveList.add(GlobalConstant.REDIS_CONNECTION_PREFIX + addrToken);
  38. }
  39. slaveList.remove(0);
  40. config.useMasterSlaveServers().addSlaveAddress((String[]) slaveList.toArray());
  41. log.info("初始化主从方式Config,redisAddress:" + address);
  42. } catch (Exception e) {
  43. log.error("主从Redisson初始化错误", e);
  44. e.printStackTrace();
  45. }
  46. return config;
  47. }
  48. }