1:springboot 配置修改:
1.1 yml 文件:
1.2
redisPool 对象换成 JedisSentinelPool 当然如果原来是用spring自带的 templateredis就不需要改
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(maxActive); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMinIdle(minIdle); // 设置从连接池中取一个连接出来前进行有效性检验(如果检验失败,则从池中去除连接并尝试取出另一个) jedisPoolConfig.setTestOnBorrow(true); // 空闲期间对连接池中的连接的有效性进行检验 jedisPoolConfig.setTestWhileIdle(true); // 2018-12-30 chen.mz Change the constructor without password and designation the database. Set<String> sentinels = Sets.newHashSet(StringUtils.split(nodes, ",")); JedisSentinelPool sentinelJedisPool = new JedisSentinelPool(master, sentinels, jedisPoolConfig, Protocol.DEFAULT_TIMEOUT);
1.3:在使用redisPool的地方获取redis信息改成:
public static JedisSentinelPool jedisPool = (JedisSentinelPool) ServiceLocator.getInstance().getBeanFactory().getBean("redisPoolFactory"); public static Jedis getJedis() { Jedis jedis = jedisPool.getResource(); return jedis; }
到这里redis就改造完毕,下面是布隆过滤器的改造:
布隆过滤器改造:
原来的布隆过滤器初始化代码(单机模式):
// @Bean // public BloomFilter<String> bloomFilter() { // logger.info("begin to init bloomfilter..."); // BloomFilter<String> bloomFilter = new FilterBuilder(expectedElements, falsePositiveProbability) // .name(filterName) //use a distinct name // .redisBacked(true) // .redisHost(host) //Default is localhost // .redisPort(port) //Default is standard 6379 // .buildBloomFilter(); // logger.info("bloomfilter init successed."); // return bloomFilter; // }
改造后:
/* 哨兵模式布隆过滤器 */ @Bean public BloomFilter<String> bloomFilter() { logger.info("begin to init bloomfilter..."); Set<String> sentinels = Sets.newHashSet(StringUtils.split(nodes, ",")); BloomFilter<String> bloomFilter = new FilterBuilder(expectedElements, falsePositiveProbability) .name(filterName) //use a distinct name .redisBacked(true) .pool(RedisPool.sentinelBuilder() .master(master) .sentinels(sentinels) .database(database) .redisConnections(connections) .build()) .buildBloomFilter(); logger.info("bloomfilter init successed."); return bloomFilter; }
改造完成!