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 ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
|
||||||
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
|
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
|
||||||
import redis.clients.jedis.*;
|
import redis.clients.jedis.*;
|
||||||
|
import redis.clients.jedis.providers.ClusterConnectionProvider;
|
||||||
import redis.clients.jedis.providers.PooledConnectionProvider;
|
import redis.clients.jedis.providers.PooledConnectionProvider;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -95,12 +96,7 @@ public interface ConfigLoader {
|
|||||||
if (hostAndPortSet.isEmpty()) {
|
if (hostAndPortSet.isEmpty()) {
|
||||||
throw new RuntimeException("No redis cluster servers specified");
|
throw new RuntimeException("No redis cluster servers specified");
|
||||||
}
|
}
|
||||||
if (redisPassword != null) {
|
summoner = new JedisClusterSummoner(new ClusterConnectionProvider(hostAndPortSet, DefaultJedisClientConfig.builder().password(redisPassword).ssl(useSSL).socketTimeoutMillis(5000).timeoutMillis(10000).build(), poolConfig));
|
||||||
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));
|
|
||||||
}
|
|
||||||
redisBungeeMode = RedisBungeeMode.CLUSTER;
|
redisBungeeMode = RedisBungeeMode.CLUSTER;
|
||||||
} else {
|
} else {
|
||||||
plugin.logInfo("RedisBungee MODE: SINGLE");
|
plugin.logInfo("RedisBungee MODE: SINGLE");
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
package com.imaginarycode.minecraft.redisbungee.api.summoners;
|
package com.imaginarycode.minecraft.redisbungee.api.summoners;
|
||||||
|
|
||||||
import redis.clients.jedis.JedisCluster;
|
import redis.clients.jedis.JedisCluster;
|
||||||
|
import redis.clients.jedis.providers.ClusterConnectionProvider;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
public class JedisClusterSummoner implements Summoner<JedisCluster> {
|
public class JedisClusterSummoner implements Summoner<JedisCluster> {
|
||||||
public final JedisCluster jedisCluster;
|
public final ClusterConnectionProvider clusterConnectionProvider;
|
||||||
|
|
||||||
public JedisClusterSummoner(JedisCluster jedisCluster) {
|
public JedisClusterSummoner(ClusterConnectionProvider clusterConnectionProvider) {
|
||||||
this.jedisCluster = jedisCluster;
|
this.clusterConnectionProvider = clusterConnectionProvider;
|
||||||
// test the connection
|
// test the connection
|
||||||
|
JedisCluster jedisCluster = obtainResource();
|
||||||
jedisCluster.set("random_data", "0");
|
jedisCluster.set("random_data", "0");
|
||||||
jedisCluster.del("random_data");
|
jedisCluster.del("random_data");
|
||||||
}
|
}
|
||||||
@ -17,11 +20,11 @@ public class JedisClusterSummoner implements Summoner<JedisCluster> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() throws IOException {
|
public void close() throws IOException {
|
||||||
jedisCluster.close();
|
this.clusterConnectionProvider.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JedisCluster obtainResource() {
|
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