package com.wushujames.kafka; import org.apache.kafka.clients.ClientResponse; import org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient; import org.apache.kafka.clients.consumer.internals.RequestFuture; import org.apache.kafka.common.Node; import org.apache.kafka.common.requests.AbstractRequest; import org.apache.kafka.common.requests.AbstractResponse; public class KafkaApiRequest { final private ConsumerNetworkClient networkClient; private RequestFuture<ClientResponse> clientResponse = null; KafkaApiRequest(final ConsumerNetworkClient networkClient){ this.networkClient = networkClient; } public void sendApiRequest(final Node node, final AbstractRequest.Builder<?> requestBuilder){ this.clientResponse = this.networkClient.send(node, requestBuilder); } public AbstractResponse getLastApiResponse(final long waitTimeMsBetweenCheckingResponse){ while(!this.clientResponse.isDone()){ try { Thread.sleep(waitTimeMsBetweenCheckingResponse); } catch (InterruptedException e) { e.printStackTrace(); } } return this.clientResponse.value().responseBody(); } }