...
|
...
- Metadata schema version (schema_version: int32)
- Topic ID (id: UUIDUuid)
This file will be plain text (key/value pairs).
...
public class CreateTopicsResult {
public KafkaFuture<UUID> KafkaFuture<Uuid> topicId(String topic)
...
public static class TopicMetadataAndConfig {
TopicMetadataAndConfig(UUID Uuid topicId, int numPartitions, int replicationFactor, Config config)
public UUID Uuid topicId()
}
The protocol for CreateTopicsResponse will also need a slight modification.
...
/**
* Create an instance with the specified parameters.
*
* @param name The topic name
* @param internal Whether the topic is internal to Kafka
* @param partitions A list of partitions where the index represents the partition id and the element contains
* leadership and replica information for that partition.
* @param authorizedOperations authorized operations for this topic, or null if this is not known.
* @param topicId Unique value that identifies the topic
*
*/
public TopicDescription(String name, boolean internal, List<TopicPartitionInfo> partitions,
Set<AclOperation> authorizedOperations, UUID topicIdUuid topicId)
/**
* A unique identifier for the topic.
*/
public UUID topicIdUuid topicId()
MetadataResponse v10
|
...
default DescribeTopicsResult describeTopics(Collection<UUID> Collection<Uuid> topicIds)
DescribeTopicsResult describeTopics(Collection<UUID> Collection<Uuid> topicIds, DescribeTopicsOptions options)
...
default DeleteTopicsResult deleteTopics(Collection<UUID> Collection<Uuid> topics)
DeleteTopicsResult deleteTopics(Collection<UUID> Collection<Uuid> topics, DeleteTopicsOptions options);
...
The idea is that this will be a hard-coded UUID that no other topic can be assigned. Initially the all zero UUID was considered, but was ultimately rejected since this is used as a null ID in some places and it is better to keep these usages separate. An example of a hard-coded UUID is 00000000-0000-0000-0000-000000000001
00000000000000000000000000000001
LeaderAndIsr, UpdateMetadata, and StopReplica
...