Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ACL: Describe Topic

Limit: 1000 partitions max per response.

The caller can specify the topic partitions OR try to query the partitions with the first partition id(-1 means fetch all the partitions, others mean to fetch the partition with and after this index).

If the server finds more than 1000 partitions to be 20 topics max per request. If more than 20 topics are included, only the first 20 will be returned with info. Others will be returned with REQUEST_LIMIT_REACHED.1000(alphabet order) will be returned with info.

  1. If the request uses the range query(first partition id)
    1. If a part of the partitions for a topic can't be returned, the first partition not returned will be specified in the next partition field.
    2. If the quota of the 1000 partitions has been used up, the rest of the topics will be returned with REQUEST_LIMIT_REACHED.
  2. If the request searches for specific partitions
    1. All the partitions specified but can't be returned due to the quota limit will be returned with REQUEST_LIMIT_REACHED
{
  "apiKey":69,
  "type": "request",
  "listeners": ["broker"],
  "name": "DescribeTopicRequest",
  "validVersions": "0",
  "flexibleVersions": "0+",
  "fields": [
    { "name": "Topics", "type": "[]TopicRequest", "versions": "0+",
      "about": "The topics to fetch details for.", "versions": "0+", "entityType": "topicRequest",
"fields": [
{ "name": "Partitions", {   "apiKey":69,   "type": "request[]int32",    "listenersdefault": ["brokernull"],    "nameversions": "DescribeTopicRequest0+",    "validVersionsnullableVersions": "0+",
"about": "The partitions to fetch details for.",   "flexibleVersions},
{ "name": "0+FirstPartitionId",   "fields": [     { "nametype": "Topicsint32", "typedefault": "[]string-2", "versions": "0+",       
"about": "The first topicspartition to fetch details for.", "versions": "0+", "entityType": "topicName" -2 means do not fetch the following partitions, -1 means to fetch all partitions,
others mean to fetch the partitions with and after this index."}
]} ] }

DescribeTopicResponse

{
  "apiKey":69,
  "type": "request",
  "name": "DescribeTopicResponse",
  "validVersions": "0",
  "flexibleVersions": "0+",
  "fields": [
    { "name": "Topics", "type": "[]MetadataResponseTopic", "versions": "0+",
      "about": "Each topic in the response.", "fields": [
      { "name": "ErrorCode", "type": "int16", "versions": "0+",
        "about": "The topic error, or 0 if there was no error." },
      { "name": "Name", "type": "string", "versions": "0+", "mapKey": true, "entityType": "topicName", "nullableVersions": "0+",
        "about": "The topic name." },
      { "name": "TopicId", "type": "uuid", "versions": "0+", "ignorable": true, "about": "The topic id." },
      { "name": "IsInternal", "type": "bool", "versions": "0+", "default": "false", "ignorable": true,
        "about": "True if the topic is internal." },
      { "name": "Partitions", "type": "[]MetadataResponsePartition", "versions": "0+",
        "about": "Each partition in the topic.", "fields": [
        { "name": "ErrorCode", "type": "int16", "versions": "0+",
          "about": "The partition error, or 0 if there was no error." },
        { "name": "PartitionIndex", "type": "int32", "versions": "0+",
          "about": "The partition index." },
        { "name": "LeaderId", "type": "int32", "versions": "0+", "entityType": "brokerId",
          "about": "The ID of the leader broker." },
        { "name": "LeaderEpoch", "type": "int32", "versions": "0+", "default": "-1", "ignorable": true,
          "about": "The leader epoch of this partition." },
        { "name": "ReplicaNodes", "type": "[]int32", "versions": "0+", "entityType": "brokerId",
          "about": "The set of all nodes that host this partition." },
        { "name": "IsrNodes", "type": "[]int32", "versions": "0+", "entityType": "brokerId",
          "about": "The set of nodes that are in sync with the leader for this partition." },
{ "name": "EligibleLeaderReplicas", "type": "[]int32", "default": "null", "entityType": "brokerId",          "versions": "0+", "nullableVersions": "0+",          "about": "The new eligible leader replicas otherwise." }, { "name": "LastKnownELR", "type": "[]int32", "default": "null", "entityType": "brokerId", "versions": "0+", "nullableVersions": "0+", "about": "The last known ELR." },
{ "name": "LastKnownLeader", "type": "int32", "default": "null", "entityType": "brokerId", "versions": "0+", "nullableVersions": "0+", "about": "The last known leader." },
       { "name": "OfflineReplicas", "type": "[]int32", "versions": "0+", "ignorable": true, "entityType": "brokerId",           "about": "The set of offline replicas of this partition." },
{ "name": "TopicAuthorizedOperations", "type": "int32", "versions": "0+", "default": "-2147483648",
"about": "32-bit bitfield to represent authorized operations for this topic." }]},
{ "name": "NextPartition", "type": "int32", "versions": "0+", "default": "-1",
"about": "The first partition that exceed the request limit. " }]},
] }

CleanShutdownFile (Coming with ELR)

...