Search in sources :

Example 11 with FindCoordinatorResponse

use of org.apache.kafka.common.requests.FindCoordinatorResponse in project apache-kafka-on-k8s by banzaicloud.

the class KafkaConsumerTest method testOffsetOfPausedPartitions.

@Test
public void testOffsetOfPausedPartitions() {
    Time time = new MockTime();
    Cluster cluster = TestUtils.singletonCluster(topic, 2);
    Node node = cluster.nodes().get(0);
    Metadata metadata = createMetadata();
    metadata.update(cluster, Collections.<String>emptySet(), time.milliseconds());
    MockClient client = new MockClient(time, metadata);
    client.setNode(node);
    PartitionAssignor assignor = new RangeAssignor();
    KafkaConsumer<String, String> consumer = newConsumer(time, client, metadata, assignor, true);
    // lookup coordinator
    client.prepareResponseFrom(new FindCoordinatorResponse(Errors.NONE, node), node);
    Node coordinator = new Node(Integer.MAX_VALUE - node.id(), node.host(), node.port());
    // manual assignment
    Set<TopicPartition> partitions = Utils.mkSet(tp0, tp1);
    consumer.assign(partitions);
    // verify consumer's assignment
    assertTrue(consumer.assignment().equals(partitions));
    consumer.pause(partitions);
    consumer.seekToEnd(partitions);
    // fetch and verify committed offset of two partitions
    Map<TopicPartition, Long> offsets = new HashMap<>();
    offsets.put(tp0, 0L);
    offsets.put(tp1, 0L);
    client.prepareResponseFrom(offsetResponse(offsets, Errors.NONE), coordinator);
    assertEquals(0, consumer.committed(tp0).offset());
    offsets.remove(tp0);
    offsets.put(tp1, 0L);
    client.prepareResponseFrom(offsetResponse(offsets, Errors.NONE), coordinator);
    assertEquals(0, consumer.committed(tp1).offset());
    // fetch and verify consumer's position in the two partitions
    final Map<TopicPartition, Long> offsetResponse = new HashMap<>();
    offsetResponse.put(tp0, 3L);
    offsetResponse.put(tp1, 3L);
    client.prepareResponse(listOffsetsResponse(offsetResponse));
    assertEquals(3L, consumer.position(tp0));
    assertEquals(3L, consumer.position(tp1));
    client.requests().clear();
    consumer.unsubscribe();
    consumer.close();
}
Also used : FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Node(org.apache.kafka.common.Node) Metadata(org.apache.kafka.clients.Metadata) Cluster(org.apache.kafka.common.Cluster) MockTime(org.apache.kafka.common.utils.MockTime) Time(org.apache.kafka.common.utils.Time) TopicPartition(org.apache.kafka.common.TopicPartition) PartitionAssignor(org.apache.kafka.clients.consumer.internals.PartitionAssignor) MockTime(org.apache.kafka.common.utils.MockTime) MockClient(org.apache.kafka.clients.MockClient) Test(org.junit.Test)

Example 12 with FindCoordinatorResponse

use of org.apache.kafka.common.requests.FindCoordinatorResponse in project apache-kafka-on-k8s by banzaicloud.

the class KafkaConsumerTest method testResetUsingAutoResetPolicy.

@Test
public void testResetUsingAutoResetPolicy() {
    Time time = new MockTime();
    Cluster cluster = TestUtils.singletonCluster(topic, 1);
    Node node = cluster.nodes().get(0);
    Metadata metadata = createMetadata();
    metadata.update(cluster, Collections.<String>emptySet(), time.milliseconds());
    MockClient client = new MockClient(time, metadata);
    client.setNode(node);
    PartitionAssignor assignor = new RoundRobinAssignor();
    KafkaConsumer<String, String> consumer = newConsumer(time, client, metadata, assignor, OffsetResetStrategy.LATEST, true);
    consumer.assign(singletonList(tp0));
    client.prepareResponseFrom(new FindCoordinatorResponse(Errors.NONE, node), node);
    Node coordinator = new Node(Integer.MAX_VALUE - node.id(), node.host(), node.port());
    client.prepareResponseFrom(offsetResponse(Collections.singletonMap(tp0, -1L), Errors.NONE), coordinator);
    client.prepareResponse(listOffsetsResponse(Collections.singletonMap(tp0, 50L)));
    consumer.poll(0);
    assertEquals(50L, consumer.position(tp0));
}
Also used : FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) Node(org.apache.kafka.common.Node) Metadata(org.apache.kafka.clients.Metadata) Cluster(org.apache.kafka.common.Cluster) MockTime(org.apache.kafka.common.utils.MockTime) Time(org.apache.kafka.common.utils.Time) PartitionAssignor(org.apache.kafka.clients.consumer.internals.PartitionAssignor) MockTime(org.apache.kafka.common.utils.MockTime) MockClient(org.apache.kafka.clients.MockClient) Test(org.junit.Test)

Example 13 with FindCoordinatorResponse

use of org.apache.kafka.common.requests.FindCoordinatorResponse in project kafka by apache.

the class KafkaAdminClientTest method testRemoveMembersFromGroup.

@Test
public void testRemoveMembersFromGroup() throws Exception {
    try (AdminClientUnitTestEnv env = mockClientEnv()) {
        final String instanceOne = "instance-1";
        final String instanceTwo = "instance-2";
        env.kafkaClient().setNodeApiVersions(NodeApiVersions.create());
        // Retriable FindCoordinatorResponse errors should be retried
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.COORDINATOR_LOAD_IN_PROGRESS, Node.noNode()));
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        // Retriable errors should be retried
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.COORDINATOR_LOAD_IN_PROGRESS.code())));
        // Inject a top-level non-retriable error
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.UNKNOWN_SERVER_ERROR.code())));
        Collection<MemberToRemove> membersToRemove = Arrays.asList(new MemberToRemove(instanceOne), new MemberToRemove(instanceTwo));
        final RemoveMembersFromConsumerGroupResult unknownErrorResult = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions(membersToRemove));
        MemberToRemove memberOne = new MemberToRemove(instanceOne);
        MemberToRemove memberTwo = new MemberToRemove(instanceTwo);
        TestUtils.assertFutureError(unknownErrorResult.memberResult(memberOne), UnknownServerException.class);
        TestUtils.assertFutureError(unknownErrorResult.memberResult(memberTwo), UnknownServerException.class);
        MemberResponse responseOne = new MemberResponse().setGroupInstanceId(instanceOne).setErrorCode(Errors.UNKNOWN_MEMBER_ID.code());
        MemberResponse responseTwo = new MemberResponse().setGroupInstanceId(instanceTwo).setErrorCode(Errors.NONE.code());
        // Inject one member level error.
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.NONE.code()).setMembers(Arrays.asList(responseOne, responseTwo))));
        final RemoveMembersFromConsumerGroupResult memberLevelErrorResult = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions(membersToRemove));
        TestUtils.assertFutureError(memberLevelErrorResult.all(), UnknownMemberIdException.class);
        TestUtils.assertFutureError(memberLevelErrorResult.memberResult(memberOne), UnknownMemberIdException.class);
        assertNull(memberLevelErrorResult.memberResult(memberTwo).get());
        // Return with missing member.
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.NONE.code()).setMembers(Collections.singletonList(responseTwo))));
        final RemoveMembersFromConsumerGroupResult missingMemberResult = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions(membersToRemove));
        TestUtils.assertFutureError(missingMemberResult.all(), IllegalArgumentException.class);
        // The memberOne was not included in the response.
        TestUtils.assertFutureError(missingMemberResult.memberResult(memberOne), IllegalArgumentException.class);
        assertNull(missingMemberResult.memberResult(memberTwo).get());
        // Return with success.
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.NONE.code()).setMembers(Arrays.asList(responseTwo, new MemberResponse().setGroupInstanceId(instanceOne).setErrorCode(Errors.NONE.code())))));
        final RemoveMembersFromConsumerGroupResult noErrorResult = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions(membersToRemove));
        assertNull(noErrorResult.all().get());
        assertNull(noErrorResult.memberResult(memberOne).get());
        assertNull(noErrorResult.memberResult(memberTwo).get());
        // Test the "removeAll" scenario
        final List<TopicPartition> topicPartitions = Arrays.asList(1, 2, 3).stream().map(partition -> new TopicPartition("my_topic", partition)).collect(Collectors.toList());
        // construct the DescribeGroupsResponse
        DescribeGroupsResponseData data = prepareDescribeGroupsResponseData(GROUP_ID, Arrays.asList(instanceOne, instanceTwo), topicPartitions);
        // Return with partial failure for "removeAll" scenario
        // 1 prepare response for AdminClient.describeConsumerGroups
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new DescribeGroupsResponse(data));
        // 2 KafkaAdminClient encounter partial failure when trying to delete all members
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.NONE.code()).setMembers(Arrays.asList(responseOne, responseTwo))));
        final RemoveMembersFromConsumerGroupResult partialFailureResults = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions());
        ExecutionException exception = assertThrows(ExecutionException.class, () -> partialFailureResults.all().get());
        assertTrue(exception.getCause() instanceof KafkaException);
        assertTrue(exception.getCause().getCause() instanceof UnknownMemberIdException);
        // Return with success for "removeAll" scenario
        // 1 prepare response for AdminClient.describeConsumerGroups
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new DescribeGroupsResponse(data));
        // 2. KafkaAdminClient should delete all members correctly
        env.kafkaClient().prepareResponse(prepareFindCoordinatorResponse(Errors.NONE, env.cluster().controller()));
        env.kafkaClient().prepareResponse(new LeaveGroupResponse(new LeaveGroupResponseData().setErrorCode(Errors.NONE.code()).setMembers(Arrays.asList(responseTwo, new MemberResponse().setGroupInstanceId(instanceOne).setErrorCode(Errors.NONE.code())))));
        final RemoveMembersFromConsumerGroupResult successResult = env.adminClient().removeMembersFromConsumerGroup(GROUP_ID, new RemoveMembersFromConsumerGroupOptions());
        assertNull(successResult.all().get());
    }
}
Also used : MemberResponse(org.apache.kafka.common.message.LeaveGroupResponseData.MemberResponse) ListGroupsResponse(org.apache.kafka.common.requests.ListGroupsResponse) ThrottlingQuotaExceededException(org.apache.kafka.common.errors.ThrottlingQuotaExceededException) ListOffsetsRequest(org.apache.kafka.common.requests.ListOffsetsRequest) ClientQuotaFilter(org.apache.kafka.common.quota.ClientQuotaFilter) AclPermissionType(org.apache.kafka.common.acl.AclPermissionType) LeaveGroupRequest(org.apache.kafka.common.requests.LeaveGroupRequest) KafkaException(org.apache.kafka.common.KafkaException) ListTransactionsRequest(org.apache.kafka.common.requests.ListTransactionsRequest) Collections.singletonList(java.util.Collections.singletonList) ClientUtils(org.apache.kafka.clients.ClientUtils) Future(java.util.concurrent.Future) DescribeTransactionsRequest(org.apache.kafka.common.requests.DescribeTransactionsRequest) PartitionResult(org.apache.kafka.common.message.ElectLeadersResponseData.PartitionResult) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) DeletableTopicResultCollection(org.apache.kafka.common.message.DeleteTopicsResponseData.DeletableTopicResultCollection) DescribeLogDirsResponseData(org.apache.kafka.common.message.DescribeLogDirsResponseData) ClientQuotaAlteration(org.apache.kafka.common.quota.ClientQuotaAlteration) AlterReplicaLogDirTopicResult(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData.AlterReplicaLogDirTopicResult) AlterReplicaLogDirsResponseData(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData) ListGroupsRequest(org.apache.kafka.common.requests.ListGroupsRequest) CountDownLatch(java.util.concurrent.CountDownLatch) DeleteTopicsResponseData(org.apache.kafka.common.message.DeleteTopicsResponseData) Stream(java.util.stream.Stream) ApiMessageType(org.apache.kafka.common.message.ApiMessageType) MetadataResponsePartition(org.apache.kafka.common.message.MetadataResponseData.MetadataResponsePartition) DescribeGroupsResponse(org.apache.kafka.common.requests.DescribeGroupsResponse) ListOffsetsTopicResponse(org.apache.kafka.common.message.ListOffsetsResponseData.ListOffsetsTopicResponse) Errors(org.apache.kafka.common.protocol.Errors) Node(org.apache.kafka.common.Node) UnknownTopicOrPartitionException(org.apache.kafka.common.errors.UnknownTopicOrPartitionException) DescribedGroupMember(org.apache.kafka.common.message.DescribeGroupsResponseData.DescribedGroupMember) NodeApiVersions(org.apache.kafka.clients.NodeApiVersions) AuthenticationException(org.apache.kafka.common.errors.AuthenticationException) Assertions.fail(org.junit.jupiter.api.Assertions.fail) AlterUserScramCredentialsResponseData(org.apache.kafka.common.message.AlterUserScramCredentialsResponseData) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) CreatableTopicResultCollection(org.apache.kafka.common.message.CreateTopicsResponseData.CreatableTopicResultCollection) AlterUserScramCredentialsResponse(org.apache.kafka.common.requests.AlterUserScramCredentialsResponse) ClientDnsLookup(org.apache.kafka.clients.ClientDnsLookup) DescribeClusterResponse(org.apache.kafka.common.requests.DescribeClusterResponse) WriteTxnMarkersRequest(org.apache.kafka.common.requests.WriteTxnMarkersRequest) DescribeClusterBroker(org.apache.kafka.common.message.DescribeClusterResponseData.DescribeClusterBroker) DescribeAclsResponse(org.apache.kafka.common.requests.DescribeAclsResponse) WriteTxnMarkersResponseData(org.apache.kafka.common.message.WriteTxnMarkersResponseData) SecurityDisabledException(org.apache.kafka.common.errors.SecurityDisabledException) AlterReplicaLogDirsResponse(org.apache.kafka.common.requests.AlterReplicaLogDirsResponse) OptionalLong(java.util.OptionalLong) UnregisterBrokerResponseData(org.apache.kafka.common.message.UnregisterBrokerResponseData) UpdateFeaturesRequest(org.apache.kafka.common.requests.UpdateFeaturesRequest) OffsetCommitResponse(org.apache.kafka.common.requests.OffsetCommitResponse) DescribeTransactionsResponseData(org.apache.kafka.common.message.DescribeTransactionsResponseData) ResourcePattern(org.apache.kafka.common.resource.ResourcePattern) OffsetDeleteResponsePartitionCollection(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponsePartitionCollection) ExecutionException(java.util.concurrent.ExecutionException) AtomicLong(java.util.concurrent.atomic.AtomicLong) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) IncrementalAlterConfigsResponse(org.apache.kafka.common.requests.IncrementalAlterConfigsResponse) MemberResponse(org.apache.kafka.common.message.LeaveGroupResponseData.MemberResponse) FilterResults(org.apache.kafka.clients.admin.DeleteAclsResult.FilterResults) JoinGroupRequest(org.apache.kafka.common.requests.JoinGroupRequest) GroupAuthorizationException(org.apache.kafka.common.errors.GroupAuthorizationException) DescribeUserScramCredentialsResponse(org.apache.kafka.common.requests.DescribeUserScramCredentialsResponse) CredentialInfo(org.apache.kafka.common.message.DescribeUserScramCredentialsResponseData.CredentialInfo) Assertions.assertNotEquals(org.junit.jupiter.api.Assertions.assertNotEquals) ClusterAuthorizationException(org.apache.kafka.common.errors.ClusterAuthorizationException) MemberIdentity(org.apache.kafka.common.message.LeaveGroupRequestData.MemberIdentity) DeletableGroupResult(org.apache.kafka.common.message.DeleteGroupsResponseData.DeletableGroupResult) LeaveGroupRequestData(org.apache.kafka.common.message.LeaveGroupRequestData) ReplicaElectionResult(org.apache.kafka.common.message.ElectLeadersResponseData.ReplicaElectionResult) DescribeConfigsResponseData(org.apache.kafka.common.message.DescribeConfigsResponseData) ApiVersionsResponseData(org.apache.kafka.common.message.ApiVersionsResponseData) TopicPartition(org.apache.kafka.common.TopicPartition) Time(org.apache.kafka.common.utils.Time) Collection(java.util.Collection) CreateAclsResponse(org.apache.kafka.common.requests.CreateAclsResponse) DescribeClusterRequest(org.apache.kafka.common.requests.DescribeClusterRequest) DescribeUserScramCredentialsResponseData(org.apache.kafka.common.message.DescribeUserScramCredentialsResponseData) DescribeTransactionsResponse(org.apache.kafka.common.requests.DescribeTransactionsResponse) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ResourceType(org.apache.kafka.common.resource.ResourceType) CreatePartitionsResponse(org.apache.kafka.common.requests.CreatePartitionsResponse) OffsetAndMetadata(org.apache.kafka.clients.consumer.OffsetAndMetadata) Uuid(org.apache.kafka.common.Uuid) DeleteTopicsRequest(org.apache.kafka.common.requests.DeleteTopicsRequest) ReassignablePartitionResponse(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData.ReassignablePartitionResponse) OffsetDeleteResponseTopicCollection(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponseTopicCollection) DeleteAclsResponse(org.apache.kafka.common.requests.DeleteAclsResponse) ListPartitionReassignmentsResponseData(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData) AlterPartitionReassignmentsResponse(org.apache.kafka.common.requests.AlterPartitionReassignmentsResponse) CompletableFuture(java.util.concurrent.CompletableFuture) DescribeConfigsResponse(org.apache.kafka.common.requests.DescribeConfigsResponse) PatternType(org.apache.kafka.common.resource.PatternType) OptionalInt(java.util.OptionalInt) LeaveGroupResponse(org.apache.kafka.common.requests.LeaveGroupResponse) UnknownServerException(org.apache.kafka.common.errors.UnknownServerException) DeleteRecordsResponseData(org.apache.kafka.common.message.DeleteRecordsResponseData) HashSet(java.util.HashSet) AccessControlEntry(org.apache.kafka.common.acl.AccessControlEntry) AlterConfigsResourceResponse(org.apache.kafka.common.message.IncrementalAlterConfigsResponseData.AlterConfigsResourceResponse) TopicCollection(org.apache.kafka.common.TopicCollection) OngoingPartitionReassignment(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData.OngoingPartitionReassignment) UnknownMemberIdException(org.apache.kafka.common.errors.UnknownMemberIdException) TimeoutException(org.apache.kafka.common.errors.TimeoutException) DeletableGroupResultCollection(org.apache.kafka.common.message.DeleteGroupsResponseData.DeletableGroupResultCollection) MockClient(org.apache.kafka.clients.MockClient) Logger(org.slf4j.Logger) GroupSubscribedToTopicException(org.apache.kafka.common.errors.GroupSubscribedToTopicException) CreateTopicsResponse(org.apache.kafka.common.requests.CreateTopicsResponse) Semaphore(java.util.concurrent.Semaphore) LeaveGroupResponseData(org.apache.kafka.common.message.LeaveGroupResponseData) ConfigException(org.apache.kafka.common.config.ConfigException) TopicAuthorizationException(org.apache.kafka.common.errors.TopicAuthorizationException) InvalidRequestException(org.apache.kafka.common.errors.InvalidRequestException) MockTime(org.apache.kafka.common.utils.MockTime) Arrays(java.util.Arrays) ApiVersionsRequest(org.apache.kafka.common.requests.ApiVersionsRequest) NotLeaderOrFollowerException(org.apache.kafka.common.errors.NotLeaderOrFollowerException) Cluster(org.apache.kafka.common.Cluster) ApiVersionsResponse(org.apache.kafka.common.requests.ApiVersionsResponse) ListOffsetsResponse(org.apache.kafka.common.requests.ListOffsetsResponse) DescribeAclsResponseData(org.apache.kafka.common.message.DescribeAclsResponseData) TestUtils(org.apache.kafka.test.TestUtils) InvalidTopicException(org.apache.kafka.common.errors.InvalidTopicException) Set(java.util.Set) PartitionInfo(org.apache.kafka.common.PartitionInfo) DeleteGroupsResponse(org.apache.kafka.common.requests.DeleteGroupsResponse) ListTransactionsResponse(org.apache.kafka.common.requests.ListTransactionsResponse) TopicDeletionDisabledException(org.apache.kafka.common.errors.TopicDeletionDisabledException) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) ConsumerGroupState(org.apache.kafka.common.ConsumerGroupState) CreatableTopicResult(org.apache.kafka.common.message.CreateTopicsResponseData.CreatableTopicResult) MetadataResponse(org.apache.kafka.common.requests.MetadataResponse) Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) DescribeGroupsResponseData(org.apache.kafka.common.message.DescribeGroupsResponseData) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) RequestTestUtils(org.apache.kafka.common.requests.RequestTestUtils) ArrayList(java.util.ArrayList) Features(org.apache.kafka.common.feature.Features) OffsetDeleteResponsePartition(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponsePartition) CreateAclsResponseData(org.apache.kafka.common.message.CreateAclsResponseData) ElectionType(org.apache.kafka.common.ElectionType) FindCoordinatorResponseData(org.apache.kafka.common.message.FindCoordinatorResponseData) MetadataResponseTopic(org.apache.kafka.common.message.MetadataResponseData.MetadataResponseTopic) ListTransactionsResponseData(org.apache.kafka.common.message.ListTransactionsResponseData) FindCoordinatorRequest(org.apache.kafka.common.requests.FindCoordinatorRequest) OffsetFetchResponse(org.apache.kafka.common.requests.OffsetFetchResponse) UnknownTopicIdException(org.apache.kafka.common.errors.UnknownTopicIdException) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) ListGroupsResponseData(org.apache.kafka.common.message.ListGroupsResponseData) SaslAuthenticationException(org.apache.kafka.common.errors.SaslAuthenticationException) ValueSource(org.junit.jupiter.params.provider.ValueSource) AlterClientQuotasResponse(org.apache.kafka.common.requests.AlterClientQuotasResponse) TopicPartitionReplica(org.apache.kafka.common.TopicPartitionReplica) FencedInstanceIdException(org.apache.kafka.common.errors.FencedInstanceIdException) DeleteRecordsResponse(org.apache.kafka.common.requests.DeleteRecordsResponse) LEAVE_GROUP_REASON(org.apache.kafka.clients.admin.KafkaAdminClient.LEAVE_GROUP_REASON) AclOperation(org.apache.kafka.common.acl.AclOperation) DescribeClusterResponseData(org.apache.kafka.common.message.DescribeClusterResponseData) DeleteGroupsResponseData(org.apache.kafka.common.message.DeleteGroupsResponseData) UnsupportedVersionException(org.apache.kafka.common.errors.UnsupportedVersionException) WriteTxnMarkersResponse(org.apache.kafka.common.requests.WriteTxnMarkersResponse) ResourcePatternFilter(org.apache.kafka.common.resource.ResourcePatternFilter) CreatePartitionsResponseData(org.apache.kafka.common.message.CreatePartitionsResponseData) FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) LoggerFactory(org.slf4j.LoggerFactory) CreatePartitionsTopicResult(org.apache.kafka.common.message.CreatePartitionsResponseData.CreatePartitionsTopicResult) AlterReplicaLogDirPartitionResult(org.apache.kafka.common.message.AlterReplicaLogDirsResponseData.AlterReplicaLogDirPartitionResult) ListPartitionReassignmentsResponse(org.apache.kafka.common.requests.ListPartitionReassignmentsResponse) ByteBuffer(java.nio.ByteBuffer) DescribeClientQuotasResponse(org.apache.kafka.common.requests.DescribeClientQuotasResponse) UpdateFeaturesResponse(org.apache.kafka.common.requests.UpdateFeaturesResponse) ReassignableTopicResponse(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData.ReassignableTopicResponse) DescribeProducersResponse(org.apache.kafka.common.requests.DescribeProducersResponse) Collections.singleton(java.util.Collections.singleton) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) UnregisterBrokerResponse(org.apache.kafka.common.requests.UnregisterBrokerResponse) CreatePartitionsRequest(org.apache.kafka.common.requests.CreatePartitionsRequest) RecordVersion(org.apache.kafka.common.record.RecordVersion) Collections.emptyList(java.util.Collections.emptyList) KafkaFuture(org.apache.kafka.common.KafkaFuture) LogDirNotFoundException(org.apache.kafka.common.errors.LogDirNotFoundException) InetSocketAddress(java.net.InetSocketAddress) ListOffsetsResponseData(org.apache.kafka.common.message.ListOffsetsResponseData) ListOffsetsResultInfo(org.apache.kafka.clients.admin.ListOffsetsResult.ListOffsetsResultInfo) TopicExistsException(org.apache.kafka.common.errors.TopicExistsException) List(java.util.List) DescribeProducersResponseData(org.apache.kafka.common.message.DescribeProducersResponseData) DeletableTopicResult(org.apache.kafka.common.message.DeleteTopicsResponseData.DeletableTopicResult) OffsetDeleteResponseData(org.apache.kafka.common.message.OffsetDeleteResponseData) Optional(java.util.Optional) CreateTopicsResponseData(org.apache.kafka.common.message.CreateTopicsResponseData) ConsumerProtocol(org.apache.kafka.clients.consumer.internals.ConsumerProtocol) ClientQuotaFilterComponent(org.apache.kafka.common.quota.ClientQuotaFilterComponent) CreateTopicsRequest(org.apache.kafka.common.requests.CreateTopicsRequest) ElectLeadersResponse(org.apache.kafka.common.requests.ElectLeadersResponse) AclBindingFilter(org.apache.kafka.common.acl.AclBindingFilter) DescribeLogDirsTopic(org.apache.kafka.common.message.DescribeLogDirsResponseData.DescribeLogDirsTopic) IncrementalAlterConfigsResponseData(org.apache.kafka.common.message.IncrementalAlterConfigsResponseData) AccessControlEntryFilter(org.apache.kafka.common.acl.AccessControlEntryFilter) HashMap(java.util.HashMap) DescribeProducersRequest(org.apache.kafka.common.requests.DescribeProducersRequest) LeaderNotAvailableException(org.apache.kafka.common.errors.LeaderNotAvailableException) ApiError(org.apache.kafka.common.requests.ApiError) ConfigResource(org.apache.kafka.common.config.ConfigResource) OffsetOutOfRangeException(org.apache.kafka.common.errors.OffsetOutOfRangeException) MetadataRequest(org.apache.kafka.common.requests.MetadataRequest) AclBinding(org.apache.kafka.common.acl.AclBinding) OffsetDeleteResponseTopic(org.apache.kafka.common.message.OffsetDeleteResponseData.OffsetDeleteResponseTopic) ClientQuotaEntity(org.apache.kafka.common.quota.ClientQuotaEntity) ApiVersion(org.apache.kafka.common.message.ApiVersionsResponseData.ApiVersion) OngoingTopicReassignment(org.apache.kafka.common.message.ListPartitionReassignmentsResponseData.OngoingTopicReassignment) ConsumerPartitionAssignor(org.apache.kafka.clients.consumer.ConsumerPartitionAssignor) Utils(org.apache.kafka.common.utils.Utils) Iterator(java.util.Iterator) Collections.emptySet(java.util.Collections.emptySet) DeleteAclsResponseData(org.apache.kafka.common.message.DeleteAclsResponseData) ApiKeys(org.apache.kafka.common.protocol.ApiKeys) TimeUnit(java.util.concurrent.TimeUnit) AlterPartitionReassignmentsResponseData(org.apache.kafka.common.message.AlterPartitionReassignmentsResponseData) DeleteTopicsResponse(org.apache.kafka.common.requests.DeleteTopicsResponse) MetadataResponseData(org.apache.kafka.common.message.MetadataResponseData) OffsetDeleteResponse(org.apache.kafka.common.requests.OffsetDeleteResponse) DescribeLogDirsResponse(org.apache.kafka.common.requests.DescribeLogDirsResponse) Timeout(org.junit.jupiter.api.Timeout) Collections(java.util.Collections) ApiException(org.apache.kafka.common.errors.ApiException) LeaveGroupResponse(org.apache.kafka.common.requests.LeaveGroupResponse) LeaveGroupResponseData(org.apache.kafka.common.message.LeaveGroupResponseData) TopicPartition(org.apache.kafka.common.TopicPartition) DescribeGroupsResponseData(org.apache.kafka.common.message.DescribeGroupsResponseData) DescribeGroupsResponse(org.apache.kafka.common.requests.DescribeGroupsResponse) KafkaException(org.apache.kafka.common.KafkaException) ExecutionException(java.util.concurrent.ExecutionException) UnknownMemberIdException(org.apache.kafka.common.errors.UnknownMemberIdException) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Test(org.junit.jupiter.api.Test)

Example 14 with FindCoordinatorResponse

use of org.apache.kafka.common.requests.FindCoordinatorResponse in project kafka by apache.

the class CoordinatorStrategyTest method runLookup.

private AdminApiLookupStrategy.LookupResult<CoordinatorKey> runLookup(Set<CoordinatorKey> keys, FindCoordinatorResponseData responseData) {
    CoordinatorStrategy strategy = new CoordinatorStrategy(keys.iterator().next().type, new LogContext());
    strategy.buildRequest(keys);
    FindCoordinatorResponse response = new FindCoordinatorResponse(responseData);
    return strategy.handleResponse(keys, response);
}
Also used : FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) LogContext(org.apache.kafka.common.utils.LogContext)

Example 15 with FindCoordinatorResponse

use of org.apache.kafka.common.requests.FindCoordinatorResponse in project kafka by apache.

the class CoordinatorStrategyTest method runOldLookup.

private AdminApiLookupStrategy.LookupResult<CoordinatorKey> runOldLookup(CoordinatorKey key, FindCoordinatorResponseData responseData) {
    CoordinatorStrategy strategy = new CoordinatorStrategy(key.type, new LogContext());
    strategy.disableBatch();
    FindCoordinatorResponse response = new FindCoordinatorResponse(responseData);
    return strategy.handleResponse(singleton(key), response);
}
Also used : FindCoordinatorResponse(org.apache.kafka.common.requests.FindCoordinatorResponse) LogContext(org.apache.kafka.common.utils.LogContext)

Aggregations

FindCoordinatorResponse (org.apache.kafka.common.requests.FindCoordinatorResponse)16 Node (org.apache.kafka.common.Node)12 MockClient (org.apache.kafka.clients.MockClient)10 Cluster (org.apache.kafka.common.Cluster)10 MockTime (org.apache.kafka.common.utils.MockTime)10 Time (org.apache.kafka.common.utils.Time)9 Metadata (org.apache.kafka.clients.Metadata)8 PartitionAssignor (org.apache.kafka.clients.consumer.internals.PartitionAssignor)8 Test (org.junit.Test)8 HashMap (java.util.HashMap)6 LinkedHashMap (java.util.LinkedHashMap)4 TopicPartition (org.apache.kafka.common.TopicPartition)3 LogContext (org.apache.kafka.common.utils.LogContext)3 ByteBuffer (java.nio.ByteBuffer)2 HashSet (java.util.HashSet)2 FindCoordinatorResponseData (org.apache.kafka.common.message.FindCoordinatorResponseData)2 AbstractRequest (org.apache.kafka.common.requests.AbstractRequest)2 JoinGroupRequest (org.apache.kafka.common.requests.JoinGroupRequest)2 Test (org.junit.jupiter.api.Test)2 InetSocketAddress (java.net.InetSocketAddress)1