Class KafkaAdminClient
- All Implemented Interfaces:
AutoCloseable
,Admin
@Evolving public class KafkaAdminClient extends AdminClient
-
Method Summary
Methods inherited from class org.apache.kafka.clients.admin.AdminClient
create, create
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.kafka.clients.admin.Admin
abortTransaction, alterClientQuotas, alterConfigs, alterConsumerGroupOffsets, alterPartitionReassignments, alterReplicaLogDirs, alterUserScramCredentials, close, createAcls, createDelegationToken, createPartitions, createTopics, deleteAcls, deleteConsumerGroupOffsets, deleteConsumerGroups, deleteRecords, deleteTopics, deleteTopics, deleteTopics, describeAcls, describeClientQuotas, describeCluster, describeConfigs, describeConsumerGroups, describeDelegationToken, describeFeatures, describeLogDirs, describeProducers, describeReplicaLogDirs, describeTopics, describeTransactions, describeUserScramCredentials, describeUserScramCredentials, electLeaders, expireDelegationToken, incrementalAlterConfigs, listConsumerGroupOffsets, listConsumerGroups, listOffsets, listPartitionReassignments, listPartitionReassignments, listPartitionReassignments, listPartitionReassignments, listTopics, listTransactions, renewDelegationToken, unregisterBroker
-
Method Details
-
close
Description copied from interface:Admin
Close the Admin client and release all associated resources.The close operation has a grace period during which current operations will be allowed to complete, specified by the given duration. New operations will not be accepted during the grace period. Once the grace period is over, all operations that have not yet been completed will be aborted with a
TimeoutException
.- Parameters:
timeout
- The time to use for the wait time.
-
createTopics
public CreateTopicsResult createTopics(Collection<NewTopic> newTopics, CreateTopicsOptions options)Description copied from interface:Admin
Create a batch of new topics.This operation is not transactional so it may succeed for some topics while fail for others.
It may take several seconds after
CreateTopicsResult
returns success for all the brokers to become aware that the topics have been created. During this time,Admin.listTopics()
andAdmin.describeTopics(Collection)
may not return information about the new topics.This operation is supported by brokers with version 0.10.1.0 or higher. The validateOnly option is supported from version 0.10.2.0.
- Parameters:
newTopics
- The new topics to create.options
- The options to use when creating the new topics.- Returns:
- The CreateTopicsResult.
-
deleteTopics
Description copied from interface:Admin
Delete a batch of topics.This operation is not transactional so it may succeed for some topics while fail for others.
It may take several seconds after the
DeleteTopicsResult
returns success for all the brokers to become aware that the topics are gone. During this time,Admin.listTopics()
andAdmin.describeTopics(Collection)
may continue to return information about the deleted topics.If delete.topic.enable is false on the brokers, deleteTopics will mark the topics for deletion, but not actually delete them. The futures will return successfully in this case.
When using topic IDs, this operation is supported by brokers with inter-broker protocol 2.8 or higher. When using topic names, this operation is supported by brokers with version 0.10.1.0 or higher.
- Parameters:
topics
- The topics to delete.options
- The options to use when deleting the topics.- Returns:
- The DeleteTopicsResult.
-
listTopics
Description copied from interface:Admin
List the topics available in the cluster.- Parameters:
options
- The options to use when listing the topics.- Returns:
- The ListTopicsResult.
-
describeTopics
public DescribeTopicsResult describeTopics(Collection<String> topicNames, DescribeTopicsOptions options)Description copied from interface:Admin
Describe some topics in the cluster.- Parameters:
topicNames
- The names of the topics to describe.options
- The options to use when describing the topic.- Returns:
- The DescribeTopicsResult.
-
describeCluster
Description copied from interface:Admin
Get information about the nodes in the cluster.- Parameters:
options
- The options to use when getting information about the cluster.- Returns:
- The DescribeClusterResult.
-
describeAcls
Description copied from interface:Admin
Lists access control lists (ACLs) according to the supplied filter.Note: it may take some time for changes made by
createAcls
ordeleteAcls
to be reflected in the output ofdescribeAcls
.This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
filter
- The filter to use.options
- The options to use when listing the ACLs.- Returns:
- The DescribeAclsResult.
-
createAcls
Description copied from interface:Admin
Creates access control lists (ACLs) which are bound to specific resources.This operation is not transactional so it may succeed for some ACLs while fail for others.
If you attempt to add an ACL that duplicates an existing ACL, no error will be raised, but no changes will be made.
This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
acls
- The ACLs to createoptions
- The options to use when creating the ACLs.- Returns:
- The CreateAclsResult.
-
deleteAcls
public DeleteAclsResult deleteAcls(Collection<AclBindingFilter> filters, DeleteAclsOptions options)Description copied from interface:Admin
Deletes access control lists (ACLs) according to the supplied filters.This operation is not transactional so it may succeed for some ACLs while fail for others.
This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
filters
- The filters to use.options
- The options to use when deleting the ACLs.- Returns:
- The DeleteAclsResult.
-
describeConfigs
public DescribeConfigsResult describeConfigs(Collection<ConfigResource> configResources, DescribeConfigsOptions options)Description copied from interface:Admin
Get the configuration for the specified resources.The returned configuration includes default values and the isDefault() method can be used to distinguish them from user supplied values.
The value of config entries where isSensitive() is true is always
null
so that sensitive information is not disclosed.Config entries where isReadOnly() is true cannot be updated.
This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
configResources
- The resources (topic and broker resource types are currently supported)options
- The options to use when describing configs- Returns:
- The DescribeConfigsResult
-
alterConfigs
@Deprecated public AlterConfigsResult alterConfigs(Map<ConfigResource,Config> configs, AlterConfigsOptions options)Deprecated.Description copied from interface:Admin
Update the configuration for the specified resources with the default options.Updates are not transactional so they may succeed for some resources while fail for others. The configs for a particular resource are updated atomically.
This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
configs
- The resources with their configs (topic is the only resource type with configs that can be updated currently)options
- The options to use when describing configs- Returns:
- The AlterConfigsResult
-
incrementalAlterConfigs
public AlterConfigsResult incrementalAlterConfigs(Map<ConfigResource,Collection<AlterConfigOp>> configs, AlterConfigsOptions options)Description copied from interface:Admin
Incrementally update the configuration for the specified resources.Updates are not transactional so they may succeed for some resources while fail for others. The configs for a particular resource are updated atomically.
The following exceptions can be anticipated when calling
get()
on the futures obtained from the returnedAlterConfigsResult
:ClusterAuthorizationException
if the authenticated user didn't have alter access to the cluster.TopicAuthorizationException
if the authenticated user didn't have alter access to the Topic.UnknownTopicOrPartitionException
if the Topic doesn't exist.InvalidRequestException
if the request details are invalid. e.g., a configuration key was specified more than once for a resource
This operation is supported by brokers with version 2.3.0 or higher.
- Parameters:
configs
- The resources with their configsoptions
- The options to use when altering configs- Returns:
- The AlterConfigsResult
-
alterReplicaLogDirs
public AlterReplicaLogDirsResult alterReplicaLogDirs(Map<TopicPartitionReplica,String> replicaAssignment, AlterReplicaLogDirsOptions options)Description copied from interface:Admin
Change the log directory for the specified replicas. If the replica does not exist on the broker, the result shows REPLICA_NOT_AVAILABLE for the given replica and the replica will be created in the given log directory on the broker when it is created later. If the replica already exists on the broker, the replica will be moved to the given log directory if it is not already there. For detailed result, inspect the returnedAlterReplicaLogDirsResult
instance.This operation is not transactional so it may succeed for some replicas while fail for others.
This operation is supported by brokers with version 1.1.0 or higher.
- Parameters:
replicaAssignment
- The replicas with their log directory absolute pathoptions
- The options to use when changing replica dir- Returns:
- The AlterReplicaLogDirsResult
-
describeLogDirs
public DescribeLogDirsResult describeLogDirs(Collection<Integer> brokers, DescribeLogDirsOptions options)Description copied from interface:Admin
Query the information of all log directories on the given set of brokersThis operation is supported by brokers with version 1.0.0 or higher.
- Parameters:
brokers
- A list of brokersoptions
- The options to use when querying log dir info- Returns:
- The DescribeLogDirsResult
-
describeReplicaLogDirs
public DescribeReplicaLogDirsResult describeReplicaLogDirs(Collection<TopicPartitionReplica> replicas, DescribeReplicaLogDirsOptions options)Description copied from interface:Admin
Query the replica log directory information for the specified replicas.This operation is supported by brokers with version 1.0.0 or higher.
- Parameters:
replicas
- The replicas to queryoptions
- The options to use when querying replica log dir info- Returns:
- The DescribeReplicaLogDirsResult
-
createPartitions
public CreatePartitionsResult createPartitions(Map<String,NewPartitions> newPartitions, CreatePartitionsOptions options)Description copied from interface:Admin
Increase the number of partitions of the topics given as the keys ofnewPartitions
according to the corresponding values. If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected.This operation is not transactional so it may succeed for some topics while fail for others.
It may take several seconds after this method returns success for all the brokers to become aware that the partitions have been created. During this time,
Admin.describeTopics(Collection)
may not return information about the new partitions.This operation is supported by brokers with version 1.0.0 or higher.
The following exceptions can be anticipated when calling
get()
on the futures obtained from thevalues()
method of the returnedCreatePartitionsResult
AuthorizationException
if the authenticated user is not authorized to alter the topicTimeoutException
if the request was not completed in within the givenAbstractOptions.timeoutMs()
.ReassignmentInProgressException
if a partition reassignment is currently in progressBrokerNotAvailableException
if the requestedNewPartitions.assignments()
contain a broker that is currently unavailable.InvalidReplicationFactorException
if noNewPartitions.assignments()
are given and it is impossible for the broker to assign replicas with the topics replication factor.- Subclasses of
KafkaException
if the request is invalid in some way.
- Parameters:
newPartitions
- The topics which should have new partitions created, and corresponding parameters for the created partitions.options
- The options to use when creating the new partitions.- Returns:
- The CreatePartitionsResult.
-
deleteRecords
public DeleteRecordsResult deleteRecords(Map<TopicPartition,RecordsToDelete> recordsToDelete, DeleteRecordsOptions options)Description copied from interface:Admin
Delete records whose offset is smaller than the given offset of the corresponding partition.This operation is supported by brokers with version 0.11.0.0 or higher.
- Parameters:
recordsToDelete
- The topic partitions and related offsets from which records deletion starts.options
- The options to use when deleting records.- Returns:
- The DeleteRecordsResult.
-
createDelegationToken
Description copied from interface:Admin
Create a Delegation Token.This operation is supported by brokers with version 1.1.0 or higher.
The following exceptions can be anticipated when calling
get()
on the futures obtained from thedelegationToken()
method of the returnedCreateDelegationTokenResult
UnsupportedByAuthenticationException
If the request sent on PLAINTEXT/1-way SSL channels or delegation token authenticated channels.InvalidPrincipalTypeException
if the renewers principal type is not supported.DelegationTokenDisabledException
if the delegation token feature is disabled.TimeoutException
if the request was not completed in within the givenAbstractOptions.timeoutMs()
.
- Parameters:
options
- The options to use when creating delegation token.- Returns:
- The DeleteRecordsResult.
-
renewDelegationToken
public RenewDelegationTokenResult renewDelegationToken(byte[] hmac, RenewDelegationTokenOptions options)Description copied from interface:Admin
Renew a Delegation Token.This operation is supported by brokers with version 1.1.0 or higher.
The following exceptions can be anticipated when calling
get()
on the futures obtained from theexpiryTimestamp()
method of the returnedRenewDelegationTokenResult
UnsupportedByAuthenticationException
If the request sent on PLAINTEXT/1-way SSL channels or delegation token authenticated channels.DelegationTokenDisabledException
if the delegation token feature is disabled.DelegationTokenNotFoundException
if the delegation token is not found on server.DelegationTokenOwnerMismatchException
if the authenticated user is not owner/renewer of the token.DelegationTokenExpiredException
if the delegation token is expired.TimeoutException
if the request was not completed in within the givenAbstractOptions.timeoutMs()
.
- Parameters:
hmac
- HMAC of the Delegation tokenoptions
- The options to use when renewing delegation token.- Returns:
- The RenewDelegationTokenResult.
-
expireDelegationToken
public ExpireDelegationTokenResult expireDelegationToken(byte[] hmac, ExpireDelegationTokenOptions options)Description copied from interface:Admin
Expire a Delegation Token.This operation is supported by brokers with version 1.1.0 or higher.
The following exceptions can be anticipated when calling
get()
on the futures obtained from theexpiryTimestamp()
method of the returnedExpireDelegationTokenResult
UnsupportedByAuthenticationException
If the request sent on PLAINTEXT/1-way SSL channels or delegation token authenticated channels.DelegationTokenDisabledException
if the delegation token feature is disabled.DelegationTokenNotFoundException
if the delegation token is not found on server.DelegationTokenOwnerMismatchException
if the authenticated user is not owner/renewer of the requested token.DelegationTokenExpiredException
if the delegation token is expired.TimeoutException
if the request was not completed in within the givenAbstractOptions.timeoutMs()
.
- Parameters:
hmac
- HMAC of the Delegation tokenoptions
- The options to use when expiring delegation token.- Returns:
- The ExpireDelegationTokenResult.
-
describeDelegationToken
public DescribeDelegationTokenResult describeDelegationToken(DescribeDelegationTokenOptions options)Description copied from interface:Admin
Describe the Delegation Tokens.This operation is supported by brokers with version 1.1.0 or higher.
The following exceptions can be anticipated when calling
get()
on the futures obtained from thedelegationTokens()
method of the returnedDescribeDelegationTokenResult
UnsupportedByAuthenticationException
If the request sent on PLAINTEXT/1-way SSL channels or delegation token authenticated channels.DelegationTokenDisabledException
if the delegation token feature is disabled.TimeoutException
if the request was not completed in within the givenAbstractOptions.timeoutMs()
.
- Parameters:
options
- The options to use when describing delegation tokens.- Returns:
- The DescribeDelegationTokenResult.
-
describeConsumerGroups
public DescribeConsumerGroupsResult describeConsumerGroups(Collection<String> groupIds, DescribeConsumerGroupsOptions options)Description copied from interface:Admin
Describe some group IDs in the cluster.- Parameters:
groupIds
- The IDs of the groups to describe.options
- The options to use when describing the groups.- Returns:
- The DescribeConsumerGroupResult.
-
listConsumerGroups
Description copied from interface:Admin
List the consumer groups available in the cluster.- Parameters:
options
- The options to use when listing the consumer groups.- Returns:
- The ListGroupsResult.
-
listConsumerGroupOffsets
public ListConsumerGroupOffsetsResult listConsumerGroupOffsets(String groupId, ListConsumerGroupOffsetsOptions options)Description copied from interface:Admin
List the consumer group offsets available in the cluster.options
- The options to use when listing the consumer group offsets.- Returns:
- The ListGroupOffsetsResult
-
deleteConsumerGroups
public DeleteConsumerGroupsResult deleteConsumerGroups(Collection<String> groupIds, DeleteConsumerGroupsOptions options)Description copied from interface:Admin
Delete consumer groups from the cluster.options
- The options to use when deleting a consumer group.- Returns:
- The DeletConsumerGroupResult.
-
deleteConsumerGroupOffsets
public DeleteConsumerGroupOffsetsResult deleteConsumerGroupOffsets(String groupId, Set<TopicPartition> partitions, DeleteConsumerGroupOffsetsOptions options)Description copied from interface:Admin
Delete committed offsets for a set of partitions in a consumer group. This will succeed at the partition level only if the group is not actively subscribed to the corresponding topic.options
- The options to use when deleting offsets in a consumer group.- Returns:
- The DeleteConsumerGroupOffsetsResult.
-
metrics
Description copied from interface:Admin
Get the metrics kept by the adminClient -
electLeaders
public ElectLeadersResult electLeaders(ElectionType electionType, Set<TopicPartition> topicPartitions, ElectLeadersOptions options)Description copied from interface:Admin
Elect a replica as leader for the givenpartitions
, or for all partitions if the argument topartitions
is null.This operation is not transactional so it may succeed for some partitions while fail for others.
It may take several seconds after this method returns success for all the brokers in the cluster to become aware that the partitions have new leaders. During this time,
Admin.describeTopics(Collection)
may not return information about the partitions' new leaders.This operation is supported by brokers with version 2.2.0 or later if preferred election is use; otherwise the brokers most be 2.4.0 or higher.
The following exceptions can be anticipated when calling
get()
on the future obtained from the returnedElectLeadersResult
:ClusterAuthorizationException
if the authenticated user didn't have alter access to the cluster.UnknownTopicOrPartitionException
if the topic or partition did not exist within the cluster.InvalidTopicException
if the topic was already queued for deletion.NotControllerException
if the request was sent to a broker that was not the controller for the cluster.TimeoutException
if the request timed out before the election was complete.LeaderNotAvailableException
if the preferred leader was not alive or not in the ISR.
- Parameters:
electionType
- The type of election to conduct.topicPartitions
- The topics and partitions for which to conduct elections.options
- The options to use when electing the leaders.- Returns:
- The ElectLeadersResult.
-
alterPartitionReassignments
public AlterPartitionReassignmentsResult alterPartitionReassignments(Map<TopicPartition,Optional<NewPartitionReassignment>> reassignments, AlterPartitionReassignmentsOptions options)Description copied from interface:Admin
Change the reassignments for one or more partitions. Providing an empty Optional (e.g viaOptional.empty()
) willrevert the reassignment for the associated partition.The following exceptions can be anticipated when calling
get()
on the futures obtained from the returnedAlterPartitionReassignmentsResult
:ClusterAuthorizationException
If the authenticated user didn't have alter access to the cluster.UnknownTopicOrPartitionException
If the topic or partition does not exist within the cluster.TimeoutException
if the request timed out before the controller could record the new assignments.InvalidReplicaAssignmentException
If the specified assignment was not valid.NoReassignmentInProgressException
If there was an attempt to cancel a reassignment for a partition which was not being reassigned.
- Parameters:
reassignments
- The reassignments to add, modify, or remove. SeeNewPartitionReassignment
.options
- The options to use.- Returns:
- The result.
-
listPartitionReassignments
public ListPartitionReassignmentsResult listPartitionReassignments(Optional<Set<TopicPartition>> partitions, ListPartitionReassignmentsOptions options)- Parameters:
partitions
- the partitions we want to get reassignment for, or an empty optional if we want to get the reassignments for all partitions in the clusteroptions
- The options to use.- Returns:
- The result.
-
removeMembersFromConsumerGroup
public RemoveMembersFromConsumerGroupResult removeMembersFromConsumerGroup(String groupId, RemoveMembersFromConsumerGroupOptions options)Description copied from interface:Admin
Remove members from the consumer group by given member identities.For possible error codes, refer to
LeaveGroupResponse
.- Parameters:
groupId
- The ID of the group to remove member from.options
- The options to carry removing members' information.- Returns:
- The MembershipChangeResult.
-
alterConsumerGroupOffsets
public AlterConsumerGroupOffsetsResult alterConsumerGroupOffsets(String groupId, Map<TopicPartition,OffsetAndMetadata> offsets, AlterConsumerGroupOffsetsOptions options)Description copied from interface:Admin
Alters offsets for the specified group. In order to succeed, the group must be empty.
This operation is not transactional so it may succeed for some partitions while fail for others.
- Parameters:
groupId
- The group for which to alter offsets.offsets
- A map of offsets by partition with associated metadata. Partitions not specified in the map are ignored.options
- The options to use when altering the offsets.- Returns:
- The AlterOffsetsResult.
-
listOffsets
public ListOffsetsResult listOffsets(Map<TopicPartition,OffsetSpec> topicPartitionOffsets, ListOffsetsOptions options)Description copied from interface:Admin
List offset for the specified partitions. This operation enables to find the beginning offset, end offset as well as the offset matching a timestamp in partitions.
- Parameters:
topicPartitionOffsets
- The mapping from partition to the OffsetSpec to look up.options
- The options to use when retrieving the offsets- Returns:
- The ListOffsetsResult.
-
describeClientQuotas
public DescribeClientQuotasResult describeClientQuotas(ClientQuotaFilter filter, DescribeClientQuotasOptions options)Description copied from interface:Admin
Describes all entities matching the provided filter that have at least one client quota configuration value defined.The following exceptions can be anticipated when calling
get()
on the future from the returnedDescribeClientQuotasResult
:ClusterAuthorizationException
If the authenticated user didn't have describe access to the cluster.InvalidRequestException
If the request details are invalid. e.g., an invalid entity type was specified.TimeoutException
If the request timed out before the describe could finish.
This operation is supported by brokers with version 2.6.0 or higher.
- Parameters:
filter
- the filter to apply to match entitiesoptions
- the options to use- Returns:
- the DescribeClientQuotasResult containing the result
-
alterClientQuotas
public AlterClientQuotasResult alterClientQuotas(Collection<ClientQuotaAlteration> entries, AlterClientQuotasOptions options)Description copied from interface:Admin
Alters client quota configurations with the specified alterations.Alterations for a single entity are atomic, but across entities is not guaranteed. The resulting per-entity error code should be evaluated to resolve the success or failure of all updates.
The following exceptions can be anticipated when calling
get()
on the futures obtained from the returnedAlterClientQuotasResult
:ClusterAuthorizationException
If the authenticated user didn't have alter access to the cluster.InvalidRequestException
If the request details are invalid. e.g., a configuration key was specified more than once for an entity.TimeoutException
If the request timed out before the alterations could finish. It cannot be guaranteed whether the update succeed or not.
This operation is supported by brokers with version 2.6.0 or higher.
- Parameters:
entries
- the alterations to perform- Returns:
- the AlterClientQuotasResult containing the result
-
describeUserScramCredentials
public DescribeUserScramCredentialsResult describeUserScramCredentials(List<String> users, DescribeUserScramCredentialsOptions options)Description copied from interface:Admin
Describe SASL/SCRAM credentials.The following exceptions can be anticipated when calling
get()
on the futures from the returnedDescribeUserScramCredentialsResult
:ClusterAuthorizationException
If the authenticated user didn't have describe access to the cluster.ResourceNotFoundException
If the user did not exist/had no SCRAM credentials.DuplicateResourceException
If the user was requested to be described more than once in the original request.TimeoutException
If the request timed out before the describe operation could finish.
This operation is supported by brokers with version 2.7.0 or higher.
- Parameters:
users
- the users for which credentials are to be described; all users' credentials are described if null or empty.options
- The options to use when describing the credentials- Returns:
- The DescribeUserScramCredentialsResult.
-
alterUserScramCredentials
public AlterUserScramCredentialsResult alterUserScramCredentials(List<UserScramCredentialAlteration> alterations, AlterUserScramCredentialsOptions options)Description copied from interface:Admin
Alter SASL/SCRAM credentials.The following exceptions can be anticipated when calling
get()
any of the futures from the returnedAlterUserScramCredentialsResult
:NotControllerException
If the request is not sent to the Controller broker.ClusterAuthorizationException
If the authenticated user didn't have alter access to the cluster.UnsupportedByAuthenticationException
If the user authenticated with a delegation token.UnsupportedSaslMechanismException
If the requested SCRAM mechanism is unrecognized or otherwise unsupported.UnacceptableCredentialException
If the username is empty or the requested number of iterations is too small or too large.TimeoutException
If the request timed out before the describe could finish.
This operation is supported by brokers with version 2.7.0 or higher.
- Parameters:
alterations
- the alterations to be appliedoptions
- The options to use when altering the credentials- Returns:
- The AlterUserScramCredentialsResult.
-
describeFeatures
Description copied from interface:Admin
Describes finalized as well as supported features. The request is issued to any random broker.The following exceptions can be anticipated when calling
get()
on the future from the returnedDescribeFeaturesResult
:TimeoutException
If the request timed out before the describe operation could finish.
- Parameters:
options
- the options to use- Returns:
- the
DescribeFeaturesResult
containing the result
-
updateFeatures
public UpdateFeaturesResult updateFeatures(Map<String,FeatureUpdate> featureUpdates, UpdateFeaturesOptions options)Description copied from interface:Admin
Applies specified updates to finalized features. This operation is not transactional so some updates may succeed while the rest may fail.The API takes in a map of finalized feature names to
FeatureUpdate
that needs to be applied. Each entry in the map specifies the finalized feature to be added or updated or deleted, along with the new max feature version level value. This request is issued only to the controller since the API is only served by the controller. The return value contains an error code for each suppliedFeatureUpdate
, and the code indicates if the update succeeded or failed in the controller.- Downgrade of feature version level is not a regular operation/intent. It is only allowed
in the controller if the
FeatureUpdate
has the allowDowngrade flag set. Setting this flag conveys user intent to attempt downgrade of a feature max version level. Note that despite the allowDowngrade flag being set, certain downgrades may be rejected by the controller if it is deemed impossible. - Deletion of a finalized feature version is not a regular operation/intent. It could be
done by setting the allowDowngrade flag to true in the
FeatureUpdate
, and, setting the max version level to a value less than 1.
The following exceptions can be anticipated when calling
get()
on the futures obtained from the returnedUpdateFeaturesResult
:ClusterAuthorizationException
If the authenticated user didn't have alter access to the cluster.InvalidRequestException
If the request details are invalid. e.g., a non-existing finalized feature is attempted to be deleted or downgraded.TimeoutException
If the request timed out before the updates could finish. It cannot be guaranteed whether the updates succeeded or not.FeatureUpdateFailedException
This means there was an unexpected error encountered when the update was applied on the controller. There is no guarantee on whether the update succeeded or failed. The best way to find out is to issue aAdmin.describeFeatures(DescribeFeaturesOptions)
request.
This operation is supported by brokers with version 2.7.0 or higher.
- Parameters:
featureUpdates
- the map of finalized feature name toFeatureUpdate
options
- the options to use- Returns:
- the
UpdateFeaturesResult
containing the result
- Downgrade of feature version level is not a regular operation/intent. It is only allowed
in the controller if the
-
unregisterBroker
Description copied from interface:Admin
Unregister a broker.This operation does not have any effect on partition assignments. It is supported only on Kafka clusters which use Raft to store metadata, rather than ZooKeeper. The following exceptions can be anticipated when calling
get()
on the future from the returnedUnregisterBrokerResult
:TimeoutException
If the request timed out before the describe operation could finish.UnsupportedVersionException
If the software is too old to support the unregistration API, or if the cluster is not using Raft to store metadata.
- Parameters:
brokerId
- the broker id to unregister.options
- the options to use.- Returns:
- the
UnregisterBrokerResult
containing the result
-
describeProducers
public DescribeProducersResult describeProducers(Collection<TopicPartition> topicPartitions, DescribeProducersOptions options)Description copied from interface:Admin
Describe active producer state on a set of topic partitions. Unless a specific broker is requested throughDescribeProducersOptions.brokerId(int)
, this will query the partition leader to find the producer state.- Parameters:
topicPartitions
- The set of partitions to queryoptions
- Options to control the method behavior- Returns:
- The result
-
describeTransactions
public DescribeTransactionsResult describeTransactions(Collection<String> transactionalIds, DescribeTransactionsOptions options)Description copied from interface:Admin
Describe the state of a set of transactional IDs from the respective transaction coordinators, which are dynamically discovered.- Parameters:
transactionalIds
- The set of transactional IDs to queryoptions
- Options to control the method behavior- Returns:
- The result
-
abortTransaction
public AbortTransactionResult abortTransaction(AbortTransactionSpec spec, AbortTransactionOptions options)Description copied from interface:Admin
Forcefully abort a transaction which is open on a topic partition. This will send a `WriteTxnMarkers` request to the partition leader in order to abort the transaction. This requires administrative privileges.- Parameters:
spec
- The transaction specification including topic partition and producer detailsoptions
- Options to control the method behavior (including filters)- Returns:
- The result
-
listTransactions
Description copied from interface:Admin
List active transactions in the cluster. This will query all potential transaction coordinators in the cluster and collect the state of all transactions. Users should typically attempt to reduce the size of the result set usingListTransactionsOptions.filterProducerIds(Collection)
orListTransactionsOptions.filterStates(Collection)
- Parameters:
options
- Options to control the method behavior (including filters)- Returns:
- The result
-