|
|
|
@ -633,6 +633,66 @@ public class RedissonTest {
|
|
|
|
|
Assert.assertTrue(nodes.pingAll());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testSentinelStartup() throws Exception {
|
|
|
|
|
RedisRunner.RedisProcess master = new RedisRunner()
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.run();
|
|
|
|
|
RedisRunner.RedisProcess slave1 = new RedisRunner()
|
|
|
|
|
.port(6380)
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.slaveof("127.0.0.1", 6379)
|
|
|
|
|
.run();
|
|
|
|
|
RedisRunner.RedisProcess slave2 = new RedisRunner()
|
|
|
|
|
.port(6381)
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.slaveof("127.0.0.1", 6379)
|
|
|
|
|
.run();
|
|
|
|
|
RedisRunner.RedisProcess sentinel1 = new RedisRunner()
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.port(26379)
|
|
|
|
|
.sentinel()
|
|
|
|
|
.sentinelMonitor("myMaster", "127.0.0.1", 6379, 2)
|
|
|
|
|
.run();
|
|
|
|
|
RedisRunner.RedisProcess sentinel2 = new RedisRunner()
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.port(26380)
|
|
|
|
|
.sentinel()
|
|
|
|
|
.sentinelMonitor("myMaster", "127.0.0.1", 6379, 2)
|
|
|
|
|
.run();
|
|
|
|
|
RedisRunner.RedisProcess sentinel3 = new RedisRunner()
|
|
|
|
|
.nosave()
|
|
|
|
|
.randomDir()
|
|
|
|
|
.port(26381)
|
|
|
|
|
.sentinel()
|
|
|
|
|
.sentinelMonitor("myMaster", "127.0.0.1", 6379, 2)
|
|
|
|
|
.run();
|
|
|
|
|
|
|
|
|
|
Thread.sleep(5000);
|
|
|
|
|
|
|
|
|
|
Config config = new Config();
|
|
|
|
|
config.useSentinelServers()
|
|
|
|
|
.setLoadBalancer(new RandomLoadBalancer())
|
|
|
|
|
.addSentinelAddress(sentinel3.getRedisServerAddressAndPort()).setMasterName("myMaster");
|
|
|
|
|
|
|
|
|
|
long t = System.currentTimeMillis();
|
|
|
|
|
RedissonClient redisson = Redisson.create(config);
|
|
|
|
|
assertThat(System.currentTimeMillis() - t).isLessThan(2000L);
|
|
|
|
|
redisson.shutdown();
|
|
|
|
|
|
|
|
|
|
sentinel1.stop();
|
|
|
|
|
sentinel2.stop();
|
|
|
|
|
sentinel3.stop();
|
|
|
|
|
master.stop();
|
|
|
|
|
slave1.stop();
|
|
|
|
|
slave2.stop();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// @Test
|
|
|
|
|
public void testSentinel() {
|
|
|
|
|
NodesGroup<Node> nodes = redisson.getNodesGroup();
|
|
|
|
|