mirror of
https://github.com/proxiodev/RedisBungee.git
synced 2024-11-22 20:28:00 +00:00
Move cluster summoner to Provider cluster
This commit is contained in:
parent
28419b3168
commit
71b959936e
@ -12,6 +12,7 @@ import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
||||
import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
||||
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
|
||||
import redis.clients.jedis.*;
|
||||
import redis.clients.jedis.providers.ClusterConnectionProvider;
|
||||
import redis.clients.jedis.providers.PooledConnectionProvider;
|
||||
|
||||
import java.io.File;
|
||||
@ -95,12 +96,7 @@ public interface ConfigLoader {
|
||||
if (hostAndPortSet.isEmpty()) {
|
||||
throw new RuntimeException("No redis cluster servers specified");
|
||||
}
|
||||
if (redisPassword != null) {
|
||||
summoner = new JedisClusterSummoner(new JedisCluster(hostAndPortSet, 5000, 5000, 60, proxyId, redisPassword, poolConfig, useSSL));
|
||||
} else {
|
||||
plugin.logWarn("SSL option is ignored in Cluster mode if no PASSWORD is set");
|
||||
summoner = new JedisClusterSummoner(new JedisCluster(hostAndPortSet, 5000, 5000, 60, poolConfig));
|
||||
}
|
||||
summoner = new JedisClusterSummoner(new ClusterConnectionProvider(hostAndPortSet, DefaultJedisClientConfig.builder().password(redisPassword).ssl(useSSL).socketTimeoutMillis(5000).timeoutMillis(10000).build(), poolConfig));
|
||||
redisBungeeMode = RedisBungeeMode.CLUSTER;
|
||||
} else {
|
||||
plugin.logInfo("RedisBungee MODE: SINGLE");
|
||||
|
@ -1,15 +1,18 @@
|
||||
package com.imaginarycode.minecraft.redisbungee.api.summoners;
|
||||
|
||||
import redis.clients.jedis.JedisCluster;
|
||||
import redis.clients.jedis.providers.ClusterConnectionProvider;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
|
||||
public class JedisClusterSummoner implements Summoner<JedisCluster> {
|
||||
public final JedisCluster jedisCluster;
|
||||
public final ClusterConnectionProvider clusterConnectionProvider;
|
||||
|
||||
public JedisClusterSummoner(JedisCluster jedisCluster) {
|
||||
this.jedisCluster = jedisCluster;
|
||||
public JedisClusterSummoner(ClusterConnectionProvider clusterConnectionProvider) {
|
||||
this.clusterConnectionProvider = clusterConnectionProvider;
|
||||
// test the connection
|
||||
JedisCluster jedisCluster = obtainResource();
|
||||
jedisCluster.set("random_data", "0");
|
||||
jedisCluster.del("random_data");
|
||||
}
|
||||
@ -17,11 +20,11 @@ public class JedisClusterSummoner implements Summoner<JedisCluster> {
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
jedisCluster.close();
|
||||
this.clusterConnectionProvider.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JedisCluster obtainResource() {
|
||||
return this.jedisCluster;
|
||||
return new NotClosableJedisCluster(this.clusterConnectionProvider, 60, Duration.ofSeconds(30000));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.imaginarycode.minecraft.redisbungee.api.summoners;
|
||||
|
||||
import redis.clients.jedis.JedisCluster;
|
||||
import redis.clients.jedis.JedisPooled;
|
||||
import redis.clients.jedis.providers.ClusterConnectionProvider;
|
||||
import redis.clients.jedis.providers.PooledConnectionProvider;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
|
||||
public class NotClosableJedisCluster extends JedisCluster {
|
||||
|
||||
NotClosableJedisCluster(ClusterConnectionProvider provider, int maxAttempts, Duration maxTotalRetriesDuration) {
|
||||
super(provider, maxAttempts, maxTotalRetriesDuration);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user