[fix](routine-load) fix get kafka offset timeout may too long (#33502)
This commit is contained in:
committed by
yiguolei
parent
341cb40693
commit
e0ec2da29b
@ -42,6 +42,7 @@ import java.util.stream.Collectors;
|
||||
public class KafkaUtil {
|
||||
private static final Logger LOG = LogManager.getLogger(KafkaUtil.class);
|
||||
private static final int MAX_KAFKA_PARTITION_TIMEOUT_SECOND = 60;
|
||||
private static final int MAX_GET_OFFSET_TIMEOUT_SECOND = 5;
|
||||
|
||||
public static List<Integer> getAllKafkaPartitions(String brokerList, String topic,
|
||||
Map<String, String> convertedCustomProperties) throws UserException {
|
||||
@ -128,11 +129,11 @@ public class KafkaUtil {
|
||||
}
|
||||
|
||||
InternalService.PProxyRequest request = InternalService.PProxyRequest.newBuilder().setKafkaMetaRequest(
|
||||
metaRequestBuilder).build();
|
||||
metaRequestBuilder).setTimeoutSecs(MAX_GET_OFFSET_TIMEOUT_SECOND).build();
|
||||
|
||||
// get info
|
||||
Future<InternalService.PProxyResult> future = BackendServiceProxy.getInstance().getInfo(address, request);
|
||||
InternalService.PProxyResult result = future.get(5, TimeUnit.SECONDS);
|
||||
InternalService.PProxyResult result = future.get(MAX_GET_OFFSET_TIMEOUT_SECOND, TimeUnit.SECONDS);
|
||||
TStatusCode code = TStatusCode.findByValue(result.getStatus().getStatusCode());
|
||||
if (code != TStatusCode.OK) {
|
||||
throw new UserException("failed to get offsets for times: " + result.getStatus().getErrorMsgsList());
|
||||
@ -190,11 +191,11 @@ public class KafkaUtil {
|
||||
metaRequestBuilder.addPartitionIdForLatestOffsets(partitionId);
|
||||
}
|
||||
InternalService.PProxyRequest request = InternalService.PProxyRequest.newBuilder().setKafkaMetaRequest(
|
||||
metaRequestBuilder).build();
|
||||
metaRequestBuilder).setTimeoutSecs(MAX_GET_OFFSET_TIMEOUT_SECOND).build();
|
||||
|
||||
// get info
|
||||
Future<InternalService.PProxyResult> future = BackendServiceProxy.getInstance().getInfo(address, request);
|
||||
InternalService.PProxyResult result = future.get(5, TimeUnit.SECONDS);
|
||||
InternalService.PProxyResult result = future.get(MAX_GET_OFFSET_TIMEOUT_SECOND, TimeUnit.SECONDS);
|
||||
TStatusCode code = TStatusCode.findByValue(result.getStatus().getStatusCode());
|
||||
if (code != TStatusCode.OK) {
|
||||
throw new UserException("failed to get latest offsets: " + result.getStatus().getErrorMsgsList());
|
||||
|
||||
Reference in New Issue
Block a user