use of com.ctrip.xpipe.redis.keeper.RedisKeeperServer in project x-pipe by ctripcorp.
the class AbstractFullIntegrated method getRedisKeeperServers.
protected List<RedisKeeperServer> getRedisKeeperServers(String dc) {
List<RedisKeeperServer> result = new LinkedList<>();
Map<String, RedisKeeperServer> redisKeeperServers = getRegistry().getComponents(RedisKeeperServer.class);
for (RedisKeeperServer redisKeeperServer : redisKeeperServers.values()) {
String currentDc = redisKeeperServer.getCurrentKeeperMeta().parent().parent().parent().getId();
if (dc.equals(currentDc)) {
result.add(redisKeeperServer);
}
}
return result;
}
use of com.ctrip.xpipe.redis.keeper.RedisKeeperServer in project x-pipe by ctripcorp.
the class DefaultRedisKeeperServerConnectToFakeRedisTest method startKeeperServerAndTestReFullSync.
private void startKeeperServerAndTestReFullSync(int fileToKeep, int maxTransferCommnadsSize) throws Exception {
RedisKeeperServer redisKeeperServer = startRedisKeeperServerAndConnectToFakeRedis(fileToKeep, maxTransferCommnadsSize, 1000);
int keeperPort = redisKeeperServer.getListeningPort();
sleep(2000);
logger.info(remarkableMessage("send psync to redump rdb"));
int rdbDumpCount1 = ((DefaultReplicationStore) redisKeeperServer.getReplicationStore()).getRdbUpdateCount();
InMemoryPsync psync = sendInmemoryPsync("localhost", keeperPort);
sleep(3000);
int rdbDumpCount2 = ((DefaultReplicationStore) redisKeeperServer.getReplicationStore()).getRdbUpdateCount();
Assert.assertEquals(rdbDumpCount1 + 1, rdbDumpCount2);
assertPsyncResultEquals(psync);
}
use of com.ctrip.xpipe.redis.keeper.RedisKeeperServer in project x-pipe by ctripcorp.
the class DefaultRedisKeeperServerConnectToFakeRedisTest method testDumpWhileWaitForRdb.
@Test
public void testDumpWhileWaitForRdb() throws Exception {
int sleepBeforeSendRdb = 2000;
fakeRedisServer.setSleepBeforeSendRdb(sleepBeforeSendRdb);
RedisKeeperServer redisKeeperServer = startRedisKeeperServerAndConnectToFakeRedis(100, allCommandsSize);
sleep(sleepBeforeSendRdb / 4);
int rdbDumpCount1 = ((DefaultRedisKeeperServer) redisKeeperServer).getRdbDumpTryCount();
Assert.assertEquals(1, rdbDumpCount1);
int keeperPort = redisKeeperServer.getListeningPort();
logger.info(remarkableMessage("send psync to keeper port:{}"), keeperPort);
InMemoryPsync psync = sendInmemoryPsync("localhost", keeperPort, "?", -1L);
sleep(1000);
int rdbDumpCount2 = ((DefaultRedisKeeperServer) redisKeeperServer).getRdbDumpTryCount();
Assert.assertEquals(1, rdbDumpCount2);
sleep(sleepBeforeSendRdb);
assertPsyncResultEquals(psync);
}
use of com.ctrip.xpipe.redis.keeper.RedisKeeperServer in project x-pipe by ctripcorp.
the class FakeRedisRdbDumperTest method testRdbDumpWhileNotConnectedToMaster.
@Test
public void testRdbDumpWhileNotConnectedToMaster() throws Exception {
fakeRedisServer.setSleepBeforeSendFullSyncInfo(sleepBeforeSendFullSyncInfo);
RedisKeeperServer redisKeeperServer = startRedisKeeperServerAndConnectToFakeRedis();
InMemoryPsync inMemoryPsync = sendInmemoryPsync("localhost", redisKeeperServer.getListeningPort());
CommandFuture<?> future = inMemoryPsync.future();
sleep(sleepBeforeSendFullSyncInfo + 1000);
Assert.assertEquals(1, ((DefaultRedisKeeperServer) redisKeeperServer).getRdbDumpTryCount());
Assert.assertFalse(future.isSuccess());
}
use of com.ctrip.xpipe.redis.keeper.RedisKeeperServer in project x-pipe by ctripcorp.
the class PsyncHandler method doFullSync.
protected void doFullSync(RedisSlave redisSlave) {
try {
if (logger.isInfoEnabled()) {
logger.info("[doFullSync]" + redisSlave);
}
redisSlave.markPsyncProcessed();
RedisKeeperServer redisKeeperServer = redisSlave.getRedisKeeperServer();
// alert full sync
String alert = String.format("FULL(M)<-%s[%s,%s]", redisSlave.metaInfo(), redisKeeperServer.getClusterId(), redisKeeperServer.getShardId());
EventMonitor.DEFAULT.logAlertEvent(alert);
redisKeeperServer.fullSyncToSlave(redisSlave);
redisKeeperServer.getKeeperMonitor().getKeeperStats().increaseFullSync();
} catch (IOException e) {
logger.error("[doFullSync][close client]" + redisSlave, e);
try {
redisSlave.close();
} catch (IOException e1) {
logger.error("[doFullSync]" + redisSlave, e1);
}
}
}
Aggregations