• Kafka的管理客户端,支持管理和检查主题,代理,配置和ACL。所需的最低代理版本为0.10.0.0。要求更严格的方法将指定所需的最低代理版本。我们将尝试以兼容的方式改进API,但如有必要,我们保留在次要版本中进行重大更改的权利。一旦认为API稳定,我们将更新InterfaceStability批注和此通知。
  • 主要方法
  • public static AdminClient create(java.util.Properties props) 使用给定的配置创建一个新的AdminClient。
  • public static AdminClient create(java.util.Map<java.lang.String,java.lang.Object> conf) 同上
  • public void close() 同下
  • public abstract void close(long duration,java.util.concurrent.TimeUnit unit) :关闭AdminClient并释放所有关联的资源。关闭操作有一个宽限期,在此宽限期内,将允许给定的持续时间和时间单位指定当前操作的完成时间。宽限期内将不接受新操作。宽限期结束后,所有尚未完成的操作都将被TimeoutException中止。
  • public CreateTopicsResult createTopics(java.util.Collection newTopics) : 使用默认选项创建一批新主题。这是使用默认选项的#createTopics(Collection,CreateTopicsOptions)的便捷方法。有关更多详细信息,请参见重载。版本0.10.1.0或更高版本的代理支持此操作。
  • public abstract CreateTopicsResult createTopics(java.util.Collection newTopics,CreateTopicsOptions options) : 创建一批新主题。此操作不是事务性的,因此它对于某些主题可能成功,而对于其他主题则可能失败。此方法返回成功后,可能需要几秒钟的时间,所有代理才能知道主题已创建。在这段时间内,listTopics()和describeTopics(Collection)可能不会返回有关新主题的信息。版本0.10.1.0或更高版本的代理支持此操作。版本0.10.2.0支持validateOnly选项。
  • public DeleteTopicsResult deleteTopics(java.util.Collection<java.lang.String> topics) :
  • public abstract DeleteTopicsResult deleteTopics(java.util.Collection<java.lang.String> topics, DeleteTopicsOptions options) :删除一批主题。此操作不是事务性的,因此它对于某些主题可能成功,而对于其他主题则可能失败。AdminClient#deleteTopics返回成功后,可能需要几秒钟,所有代理才能意识到主题已消失。在此期间,AdminClient#listTopics和AdminClient#describeTopics可能会继续返回有关已删除主题的信息。如果代理上的delete.topic.enable为false,则deleteTopics将标记主题为删除,但实际上不会删除它们。在这种情况下,期货将成功返回。版本0.10.1.0或更高版本的代理支持此操作。
  • public ListTopicsResult listTopics() : 列出群集中可用的主题以及默认选项。 这是使用默认选项的#listTopics(ListTopicsOptions)的便捷方法。
  • public abstract ListTopicsResult listTopics(ListTopicsOptions options) 列出集群中可用的主题。
  • public DescribeTopicsResult describeTopics(java.util.Collection<java.lang.String> topicNames) 使用默认选项描述集群中的一些主题。这是使用默认选项的#describeTopics(Collection,DescribeTopicsOptions)的便捷方法。
  • public abstract DescribeTopicsResult describeTopics(java.util.Collection<java.lang.String> topicNames,
    DescribeTopicsOptions options): 描述集群中的一些主题。
  • public DescribeClusterResult describeCluster() 使用默认选项获取有关集群中节点的信息。
  • public abstract DescribeClusterResult describeCluster(DescribeClusterOptions options) 获取有关集群中节点的信息。
  • public DescribeAclsResult describeAcls(AclBindingFilter filter) 同下
  • public abstract DescribeAclsResult describeAcls(AclBindingFilter filter,
    DescribeAclsOptions options) 根据提供的过滤器列出访问控制列表(ACL)。注意:createAcls或deleteAcls所做的更改可能需要一些时间才能反映到describeAcls的输出中。版本0.11.0.0或更高版本的代理支持此操作。
  • public CreateAclsResult createAcls(java.util.Collection acls)
  • public abstract CreateAclsResult createAcls(java.util.Collection acls, CreateAclsOptions options) : 创建绑定到特定资源的访问控制列表(ACL)。此操作不是事务性的,因此对于某些ACL可能成功,而对于其他ACL则可能失败。如果您尝试添加与现有ACL复制的ACL,则不会引发任何错误,但不会进行任何更改。版本0.11.0.0或更高版本的代理支持此操作。
  • public DeleteAclsResult deleteAcls(java.util.Collection filters)
  • public abstract DeleteAclsResult deleteAcls(java.util.Collection filters, DeleteAclsOptions options): 根据提供的过滤器删除访问控制列表(ACL)。此操作不是事务性的,因此对于某些ACL可能成功,而对于其他ACL则可能失败。版本0.11.0.0或更高版本的代理支持此操作。
  • public DescribeConfigsResult describeConfigs(java.util.Collection resources)
  • public abstract DescribeConfigsResult describeConfigs(java.util.Collection resources, DescribeConfigsOptions options): 获取指定资源的配置。返回的配置包括默认值,isDefault()方法可用于将其与用户提供的值区分开。isSensitive()为true的配置条目的值始终为null,因此不会公开敏感信息。isReadOnly()为true的配置条目无法更新。版本0.11.0.0或更高版本的代理支持此操作。
  • public AlterConfigsResult alterConfigs(java.util.Map<ConfigResource,Config> configs)
  • public abstract AlterConfigsResult alterConfigs(java.util.Map<ConfigResource,Config> configs, AlterConfigsOptions options) : 使用默认选项更新指定资源的配置。更新不是事务性的,因此更新可能会为某些资源成功而为其他资源失败。特定资源的配置会自动更新。版本0.11.0.0或更高版本的代理支持此操作。
  • public AlterReplicaLogDirsResult alterReplicaLogDirs(java.util.Map<TopicPartitionReplica,java.lang.String> replicaAssignment)
  • public abstract AlterReplicaLogDirsResult alterReplicaLogDirs(java.util.Map<TopicPartitionReplica,java.lang.String> replicaAssignment, AlterReplicaLogDirsOptions options) :更改指定副本的日志目录。当前仅当在代理上创建副本之前使用此API时,此API才有用。它将支持在完全实施KIP-113之后已经创建的移动副本。此操作不是事务性的,因此它可能对某些副本成功而对其他副本失败。版本1.0.0或更高版本的代理支持此操作。
  • public DescribeLogDirsResult describeLogDirs(java.util.Collection<java.lang.Integer> brokers)
  • public abstract DescribeLogDirsResult describeLogDirs(java.util.Collection<java.lang.Integer> brokers,
    DescribeLogDirsOptions options) : 查询给定代理集上所有日志目录的信息版本1.0.0或更高版本的代理支持此操作。
  • public DescribeReplicaLogDirsResult describeReplicaLogDirs(java.util.Collection replicas)
  • public abstract DescribeReplicaLogDirsResult describeReplicaLogDirs(java.util.Collection replicas,
    DescribeReplicaLogDirsOptions options) : 查询副本日志目录信息中的指定副本。版本1.0.0或更高版本的代理支持此操作。
  • public CreatePartitionsResult createPartitions(java.util.Map<java.lang.String,NewPartitions> newPartitions)
  • public abstract CreatePartitionsResult createPartitions(java.util.Map<java.lang.String,NewPartitions> newPartitions,
    CreatePartitionsOptions options) 根据相应的值,增加作为newPartitions关键字指定的主题的分区数。如果为具有关键字的主题增加了分区,则分区逻辑或消息的顺序将受到影响。

此操作不是事务性的,因此它对于某些主题可能成功,而对于其他主题则可能失败。
此方法返回成功后,可能需要几秒钟,所有代理才能知道已创建分区。在这段时间内,describeTopics(Collection)可能不会返回有关新分区的信息。
版本1.0.0或更高版本的代理支持此操作。
在从返回的CreatePartitionsResult的values()方法获得CreatePartitionsResult上调用get()时,可以预期以下异常

  1. AuthorizationException 如果认证用户无权更改主题
  2. TimeoutException 如果请求未在给定的AbstractOptions.timeoutMs()内完成。
  3. ReassignmentInProgressException 如果正在进行分区重新分配
  4. BrokerNotAvailableException如果请求的NewPartitions.assignments()包含当前不可用的代理。
  5. InvalidReplicationFactorException 如果没有给出NewPartitions.assignments(),则代理程序不可能用主题复制因子来分配副本。
  6. Subclasses of KafkaException 如果请求在某种程度上无效。