use of org.apache.ignite.network.ClusterService in project ignite-3 by apache.
the class ItCliServiceTest method setup.
/**
* Executes before each test.
*/
@BeforeEach
public void setup(TestInfo testInfo, @WorkDirectory Path dataPath) throws Exception {
LOG.info(">>>>>>>>>>>>>>> Start test method: " + testInfo.getDisplayName());
List<PeerId> peers = TestUtils.generatePeers(3);
LinkedHashSet<PeerId> learners = new LinkedHashSet<>();
// 2 learners
for (int i = 0; i < 2; i++) {
learners.add(new PeerId(TestUtils.getLocalAddress(), TestUtils.INIT_PORT + LEARNER_PORT_STEP + i));
}
cluster = new TestCluster(groupId, dataPath.toString(), peers, learners, ELECTION_TIMEOUT_MILLIS, testInfo);
for (PeerId peer : peers) {
cluster.start(peer.getEndpoint());
}
for (PeerId peer : learners) {
cluster.startLearner(peer);
}
cluster.waitLeader();
cluster.ensureLeader(cluster.getLeader());
cliService = new CliServiceImpl();
conf = new Configuration(peers, learners);
CliOptions opts = new CliOptions();
clientExecutor = JRaftUtils.createClientExecutor(opts, "client");
opts.setClientExecutor(clientExecutor);
List<NetworkAddress> addressList = peers.stream().map(PeerId::getEndpoint).map(JRaftUtils::addressFromEndpoint).collect(toList());
ClusterService clientSvc = ClusterServiceTestUtils.clusterService(testInfo, TestUtils.INIT_PORT - 1, new StaticNodeFinder(addressList), new TestScaleCubeClusterServiceFactory());
clientSvc.start();
IgniteRpcClient rpcClient = new IgniteRpcClient(clientSvc) {
@Override
public void shutdown() {
super.shutdown();
clientSvc.stop();
}
};
opts.setRpcClient(rpcClient);
assertTrue(cliService.init(opts));
}
use of org.apache.ignite.network.ClusterService in project ignite-3 by apache.
the class ItMetaStorageRaftGroupTest method afterTest.
/**
* Shutdown raft server and stop all cluster nodes.
*
* @throws Exception If failed to shutdown raft server,
*/
@AfterEach
public void afterTest() throws Exception {
if (metaStorageRaftSrv3 != null) {
metaStorageRaftSrv3.stopRaftGroup(METASTORAGE_RAFT_GROUP_NAME);
metaStorageRaftSrv3.stop();
metaStorageRaftGrpSvc3.shutdown();
}
if (metaStorageRaftSrv2 != null) {
metaStorageRaftSrv2.stopRaftGroup(METASTORAGE_RAFT_GROUP_NAME);
metaStorageRaftSrv2.stop();
metaStorageRaftGrpSvc2.shutdown();
}
if (metaStorageRaftSrv1 != null) {
metaStorageRaftSrv1.stopRaftGroup(METASTORAGE_RAFT_GROUP_NAME);
metaStorageRaftSrv1.stop();
metaStorageRaftGrpSvc1.shutdown();
}
IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS);
for (ClusterService node : cluster) {
node.stop();
}
}
use of org.apache.ignite.network.ClusterService in project ignite-3 by apache.
the class ItTablePersistenceTest method createListener.
/**
* {@inheritDoc}
*/
@Override
public RaftGroupListener createListener(ClusterService service, Path workDir) {
return paths.entrySet().stream().filter(entry -> entry.getValue().equals(workDir)).map(Map.Entry::getKey).findAny().orElseGet(() -> {
TableTxManagerImpl txManager = new TableTxManagerImpl(service, new HeapLockManager());
// Init listener.
txManager.start();
PartitionListener listener = new PartitionListener(UUID.randomUUID(), new VersionedRowStore(new ConcurrentHashMapPartitionStorage(), txManager));
paths.put(listener, workDir);
return listener;
});
}
use of org.apache.ignite.network.ClusterService in project ignite-3 by apache.
the class ItNodeRestartsTest method testRestarts.
/**
* Tests that restarting nodes get discovered in an established topology.
*/
@Test
public void testRestarts(TestInfo testInfo) {
final int initPort = 3344;
List<NetworkAddress> addresses = findLocalAddresses(initPort, initPort + 5);
var nodeFinder = new StaticNodeFinder(addresses);
services = addresses.stream().map(addr -> startNetwork(testInfo, addr, nodeFinder)).collect(// ensure mutability
Collectors.toCollection(ArrayList::new));
for (ClusterService service : services) {
assertTrue(waitForTopology(service, 5, 5_000), service.topologyService().localMember().toString() + ", topSize=" + service.topologyService().allMembers().size());
}
int idx0 = 0;
int idx1 = 2;
LOG.info("Shutdown {}", addresses.get(idx0));
services.get(idx0).stop();
LOG.info("Shutdown {}", addresses.get(idx1));
services.get(idx1).stop();
LOG.info("Starting {}", addresses.get(idx0));
ClusterService svc0 = startNetwork(testInfo, addresses.get(idx0), nodeFinder);
services.set(idx0, svc0);
LOG.info("Starting {}", addresses.get(idx1));
ClusterService svc2 = startNetwork(testInfo, addresses.get(idx1), nodeFinder);
services.set(idx1, svc2);
for (ClusterService service : services) {
assertTrue(waitForTopology(service, 5, 10_000), service.topologyService().localMember().toString() + ", topSize=" + service.topologyService().allMembers().size());
}
LOG.info("Reached stable state");
}
use of org.apache.ignite.network.ClusterService in project ignite-3 by apache.
the class ItNodeRestartsTest method startNetwork.
/**
* Creates a {@link ClusterService} using the given local address and the node finder.
*
* @param testInfo Test info.
* @param addr Node address.
* @param nodeFinder Node finder.
* @return Created Cluster Service.
*/
private ClusterService startNetwork(TestInfo testInfo, NetworkAddress addr, NodeFinder nodeFinder) {
ClusterService clusterService = ClusterServiceTestUtils.clusterService(testInfo, addr.port(), nodeFinder, networkFactory);
clusterService.start();
return clusterService;
}
Aggregations