Search in sources :

Example 1 with KafkaRaftManager

use of kafka.raft.KafkaRaftManager in project kafka by apache.

the class KafkaClusterTestKit method close.

@Override
public void close() throws Exception {
    List<Entry<String, Future<?>>> futureEntries = new ArrayList<>();
    try {
        controllerQuorumVotersFutureManager.close();
        for (Entry<Integer, BrokerServer> entry : brokers.entrySet()) {
            int brokerId = entry.getKey();
            BrokerServer broker = entry.getValue();
            futureEntries.add(new SimpleImmutableEntry<>("broker" + brokerId, executorService.submit(broker::shutdown)));
        }
        waitForAllFutures(futureEntries);
        futureEntries.clear();
        for (Entry<Integer, ControllerServer> entry : controllers.entrySet()) {
            int controllerId = entry.getKey();
            ControllerServer controller = entry.getValue();
            futureEntries.add(new SimpleImmutableEntry<>("controller" + controllerId, executorService.submit(controller::shutdown)));
        }
        waitForAllFutures(futureEntries);
        futureEntries.clear();
        for (Entry<Integer, KafkaRaftManager<ApiMessageAndVersion>> entry : raftManagers.entrySet()) {
            int raftManagerId = entry.getKey();
            KafkaRaftManager<ApiMessageAndVersion> raftManager = entry.getValue();
            futureEntries.add(new SimpleImmutableEntry<>("raftManager" + raftManagerId, executorService.submit(raftManager::shutdown)));
        }
        waitForAllFutures(futureEntries);
        futureEntries.clear();
        Utils.delete(baseDirectory);
    } catch (Exception e) {
        for (Entry<String, Future<?>> entry : futureEntries) {
            entry.getValue().cancel(true);
        }
        throw e;
    } finally {
        executorService.shutdownNow();
        executorService.awaitTermination(5, TimeUnit.MINUTES);
    }
}
Also used : ControllerServer(kafka.server.ControllerServer) BrokerServer(kafka.server.BrokerServer) ArrayList(java.util.ArrayList) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) Entry(java.util.Map.Entry) SimpleImmutableEntry(java.util.AbstractMap.SimpleImmutableEntry) ApiMessageAndVersion(org.apache.kafka.server.common.ApiMessageAndVersion) KafkaRaftManager(kafka.raft.KafkaRaftManager)

Aggregations

IOException (java.io.IOException)1 SimpleImmutableEntry (java.util.AbstractMap.SimpleImmutableEntry)1 ArrayList (java.util.ArrayList)1 Entry (java.util.Map.Entry)1 ExecutionException (java.util.concurrent.ExecutionException)1 KafkaRaftManager (kafka.raft.KafkaRaftManager)1 BrokerServer (kafka.server.BrokerServer)1 ControllerServer (kafka.server.ControllerServer)1 ApiMessageAndVersion (org.apache.kafka.server.common.ApiMessageAndVersion)1