Я делаю poc (Redis + springboot + jpa), когда я устанавливаю свойство Redis setEnableTransactionSupport (true), тогда исключение Transaction не поддерживается в clustermode, когда я устанавливаю setEnableTransactionSupport (false) во время получения redisTemplate, а затем исключения ресурса грядет бассейн.
@ Примечание. Эта проблема возникает, когда я устанавливаю Redis и весеннюю загрузку на другом компьютере.
У меня 6 узлов, 3 из которых являются главными, а 3 - подчиненными.
Но когда я настраиваю целое на одной машине (весна + Redis), то все работает нормально.
ниже мои зависимости:
[<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>]
[<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<type>jar</type>]
Я попробовал то, что было предложено в ссылке ниже:
Jedis, Не удается получить соединение с Jedis: невозможно получить ресурс из пула
ниже моя конфигурация для Redis Connection factory:
## Redis Properties(application.properties)
spring.redis.cluster.nodes=127.0.0.1:7000,127.0.0.1:7001,127.0.0.1:7002
RedisClusterConfigProp.java
@Component
@ConfigurationProperties(value = "spring.redis.cluster")
public class RedisClusterConfigProp {
List<String> nodes;
/**
* @return the nodes
*/
public List<String> getNodes() {
return nodes;
}
/**
* @param nodes
* the nodes to set
*/
public void setNodes(List<String> nodes) {
this.nodes = nodes;
}
}
RedisClusterConfigration.java
@Configuration
public class RedisClusterConfigration {
@Autowired
public RedisClusterConfigProp clusterConfigProp;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory jedisConnFac = new JedisConnectionFactory(
new RedisClusterConfiguration(clusterConfigProp.getNodes()), new JedisPoolConfig());
jedisConnFac.getPoolConfig().setMaxIdle(40);
jedisConnFac.getPoolConfig().setMinIdle(20);
return jedisConnFac;
}
@Bean
public RedisTemplate redisTemplate() {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory());
template.setEnableTransactionSupport(false);
return template;
}