THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
AdminClient APIs
We will add two new admin APIs: alterPartitionAssignments, and listPartitionReassignments. As the names imply, the alter API modifies partition reassignments, and the list API lists the ones which are ongoing.
...
Code Block | ||
---|---|---|
| ||
/** * Change the reassignments for one or more partitions. * * @param reassignments The reassignments to add, modify, or remove. * @param options The options to use. * @return The result. */ public AlterPartitionReassignmentsResult alterPartitionReassignments( Map<TopicPartition, Optional<NewPartitionReassignment>> reassignments, AlterPartitionReassignmentsOptions options); /** * A new partition reassignment, which can be applied via {@link AdminClient#alterPartitionReassignments(Map)}. */ public class NewPartitionReassignment { private final List<Integer> targetBrokers; ... } class AlterPartitionAssignmentsResult { Map<TopicPartition, Future<Void>> futures; // maps partitions to the results for each partition (success / failure) Future<Void> all(); // Throws an exception if any reassignment was rejected } class AlterPartitionAssignmentsOptions extends AbstractOptions<> { // contains timeoutMs } /** * List some of the current partition reassignments. * * @param options The options to use. * @param partitions The partitions to show reassignments for. Must be non-null. */ ListPartitionReassignmentsResult listPartitionReassignments( ListPartitionReassignmentsOptions options, Set<TopicPartition> partitions); /** * List all of the current partition reassignments for the given topics. * * @param options The options to use. * @param topics The topics to show reassignments for. Must be non-null. */ ListPartitionReassignmentsResult listPartitionReassignments( ListPartitionReassignmentsOptions options, Set<String> topics); /** * List all of the current partition reassignments. * * @param options The options to use. */ ListPartitionReassignmentsResult listPartitionReassignments( ListPartitionReassignmentsOptions options); class ListPartitionReassignmentsOptions extends AbstractOptions<> { // contains timeoutMs } class ListPartitionReassignmentsResult { private final KafkaFuture<Map<TopicPartition, PartitionReassignment>> reassignments; } /** * A partition reassignment, which has been listed via {@link AdminClient#listPartitionReassignments()}. */ public class PartitionReassignment { /** * The brokers which we want this partition tocurrently resideresides on. */ private final List<Integer> replicas; /** * The brokers that we are adding this partition to as part of a reassignment. */ private final List<Integer> addingReplicas; /** * The brokers that we are removing this partition from as part of a reassignment. */ private final List<Integer> removingReplicas; } |
...