本文整理汇总了Java中org.apache.kafka.clients.ClientResponse.wasDisconnected方法的典型用法代码示例。如果您正苦于以下问题:Java ClientResponse.wasDisconnected方法的具体用法?Java ClientResponse.wasDisconnected怎么用?Java ClientResponse.wasDisconnected使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.kafka.clients.ClientResponse
的用法示例。
在下文中一共展示了ClientResponse.wasDisconnected方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onComplete
import org.apache.kafka.clients.ClientResponse; //导入方法依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public void onComplete(ClientResponse response) {
if (response.requestHeader().correlationId() != inFlightRequestCorrelationId) {
fatalError(new RuntimeException("Detected more than one in-flight transactional request."));
} else {
clearInFlightRequestCorrelationId();
if (response.wasDisconnected()) {
log.debug("{}Disconnected from {}. Will retry.", logPrefix, response.destination());
if (this.needsCoordinator())
lookupCoordinator(this.coordinatorType(), this.coordinatorKey());
reenqueue();
} else if (response.versionMismatch() != null) {
fatalError(response.versionMismatch());
} else if (response.hasResponse()) {
log.trace("{}Received transactional response {} for request {}", logPrefix,
response.responseBody(), requestBuilder());
synchronized (TransactionManager.this) {
handleResponse(response.responseBody());
}
} else {
fatalError(new KafkaException("Could not execute transactional request for unknown reasons"));
}
}
}
示例2: onComplete
import org.apache.kafka.clients.ClientResponse; //导入方法依赖的package包/类
@Override
public void onComplete(ClientResponse response) {
if (response.wasDisconnected()) {
ClientRequest request = response.request();
RequestSend send = request.request();
ApiKeys api = ApiKeys.forId(send.header().apiKey());
int correlation = send.header().correlationId();
log.debug("Cancelled {} request {} with correlation id {} due to node {} being disconnected",
api, request, correlation, send.destination());
raise(DisconnectException.INSTANCE);
} else {
complete(response);
}
}
示例3: handleResponses
import org.apache.kafka.clients.ClientResponse; //导入方法依赖的package包/类
/**
* Handle responses from the server.
*
* @param now The current time in milliseconds.
* @param responses The latest responses from KafkaClient.
* @param correlationIdToCall A map of correlation IDs to calls.
* @param callsInFlight A map of nodes to the calls they have in flight.
**/
private void handleResponses(long now, List<ClientResponse> responses, Map<String, List<Call>> callsInFlight,
Map<Integer, Call> correlationIdToCall) {
for (ClientResponse response : responses) {
int correlationId = response.requestHeader().correlationId();
Call call = correlationIdToCall.get(correlationId);
if (call == null) {
// If the server returns information about a correlation ID we didn't use yet,
// an internal server error has occurred. Close the connection and log an error message.
log.error("Internal server error on {}: server returned information about unknown " +
"correlation ID {}. requestHeader = {}", response.destination(), correlationId,
response.requestHeader());
client.disconnect(response.destination());
continue;
}
// Stop tracking this call.
correlationIdToCall.remove(correlationId);
getOrCreateListValue(callsInFlight, response.requestHeader().clientId()).remove(call);
// Handle the result of the call. This may involve retrying the call, if we got a
// retryible exception.
if (response.versionMismatch() != null) {
call.fail(now, response.versionMismatch());
} else if (response.wasDisconnected()) {
call.fail(now, new DisconnectException(String.format(
"Cancelled %s request with correlation id %s due to node %s being disconnected",
call.callName, correlationId, response.destination())));
} else {
try {
call.handleResponse(response.responseBody());
if (log.isTraceEnabled())
log.trace("{}: {} got response {}", clientId, call, response.responseBody());
} catch (Throwable t) {
if (log.isTraceEnabled())
log.trace("{}: {} handleResponse failed with {}", clientId, call, prettyPrintException(t));
call.fail(now, t);
}
}
}
}