use of org.apache.kafka.common.requests.DescribeProducersRequest in project kafka by apache.
the class KafkaAdminClientTest method testDescribeProducersRetryAfterDisconnect.
@Test
public void testDescribeProducersRetryAfterDisconnect() throws Exception {
MockTime time = new MockTime();
int retryBackoffMs = 100;
Cluster cluster = mockCluster(3, 0);
Map<String, Object> configOverride = newStrMap(AdminClientConfig.RETRY_BACKOFF_MS_CONFIG, "" + retryBackoffMs);
try (AdminClientUnitTestEnv env = new AdminClientUnitTestEnv(time, cluster, configOverride)) {
TopicPartition topicPartition = new TopicPartition("foo", 0);
Iterator<Node> nodeIterator = env.cluster().nodes().iterator();
Node initialLeader = nodeIterator.next();
expectMetadataRequest(env, topicPartition, initialLeader);
List<ProducerState> expected = Arrays.asList(new ProducerState(12345L, 15, 30, env.time().milliseconds(), OptionalInt.of(99), OptionalLong.empty()), new ProducerState(12345L, 15, 30, env.time().milliseconds(), OptionalInt.empty(), OptionalLong.of(23423L)));
DescribeProducersResponse response = buildDescribeProducersResponse(topicPartition, expected);
env.kafkaClient().prepareResponseFrom(request -> {
// We need a sleep here because the client will attempt to
// backoff after the disconnect
env.time().sleep(retryBackoffMs);
return request instanceof DescribeProducersRequest;
}, response, initialLeader, true);
Node retryLeader = nodeIterator.next();
expectMetadataRequest(env, topicPartition, retryLeader);
env.kafkaClient().prepareResponseFrom(request -> request instanceof DescribeProducersRequest, response, retryLeader);
DescribeProducersResult result = env.adminClient().describeProducers(singleton(topicPartition));
KafkaFuture<DescribeProducersResult.PartitionProducerState> partitionFuture = result.partitionResult(topicPartition);
assertEquals(new HashSet<>(expected), new HashSet<>(partitionFuture.get().activeProducers()));
}
}
use of org.apache.kafka.common.requests.DescribeProducersRequest in project kafka by apache.
the class KafkaAdminClientTest method testDescribeProducers.
@Test
public void testDescribeProducers() throws Exception {
try (AdminClientUnitTestEnv env = mockClientEnv()) {
TopicPartition topicPartition = new TopicPartition("foo", 0);
Node leader = env.cluster().nodes().iterator().next();
expectMetadataRequest(env, topicPartition, leader);
List<ProducerState> expected = Arrays.asList(new ProducerState(12345L, 15, 30, env.time().milliseconds(), OptionalInt.of(99), OptionalLong.empty()), new ProducerState(12345L, 15, 30, env.time().milliseconds(), OptionalInt.empty(), OptionalLong.of(23423L)));
DescribeProducersResponse response = buildDescribeProducersResponse(topicPartition, expected);
env.kafkaClient().prepareResponseFrom(request -> request instanceof DescribeProducersRequest, response, leader);
DescribeProducersResult result = env.adminClient().describeProducers(singleton(topicPartition));
KafkaFuture<DescribeProducersResult.PartitionProducerState> partitionFuture = result.partitionResult(topicPartition);
assertEquals(new HashSet<>(expected), new HashSet<>(partitionFuture.get().activeProducers()));
}
}
Aggregations