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;
}
改造完成!