View Source KlifeProtocol.Messages.Metadata (Klife Protocol v0.7.0)

Kafka protocol Metadata message

Request versions summary:

Response versions summary:

  • Version 1 adds fields for the rack of each broker, the controller id, and whether or not the topic is internal.
  • Version 2 adds the cluster ID field.
  • Version 3 adds the throttle time.
  • Version 4 is the same as version 3.
  • Version 5 adds a per-partition offline_replicas field. This field specifies the list of replicas that are offline.
  • Starting in version 6, on quota violation, brokers send out responses before throttling.
  • Version 7 adds the leader epoch to the partition metadata.
  • Starting in version 8, brokers can send authorized operations for topic and cluster.
  • Version 9 is the first flexible version.
  • Version 10 adds topicId.
  • Version 11 deprecates ClusterAuthorizedOperations. This is now exposed by the DescribeCluster API (KIP-700). Version 12 supports topicId.

Link to this section Summary

Functions

Returns the message api key number.

Receive a binary in the kafka wire format and deserialize it into a map.

Returns the current max supported version of this message.

Returns the current min supported version of this message.

Receives a map and serialize it to kafka wire format of the given version.

Link to this section Functions

Returns the message api key number.

Link to this function

deserialize_response(data, version, with_header? \\ true)

View Source

Receive a binary in the kafka wire format and deserialize it into a map.

Response content fields:

  • throttle_time_ms: The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. (int32 | versions 3+)

  • brokers: Each broker in the response. ([]MetadataResponseBroker | versions 0+)

    • node_id: The broker ID. (int32 | versions 0+)

    • host: The broker hostname. (string | versions 0+)

    • port: The broker port. (int32 | versions 0+)

    • rack: The rack of the broker, or null if it has not been assigned to a rack. (string | versions 1+)

  • cluster_id: The cluster ID that responding broker belongs to. (string | versions 2+)

  • controller_id: The ID of the controller broker. (int32 | versions 1+)

  • topics: Each topic in the response. ([]MetadataResponseTopic | versions 0+)

    • error_code: The topic error, or 0 if there was no error. (int16 | versions 0+)

    • name: The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. (string | versions 0+)

    • topic_id: The topic id. Zero for non-existing topics queried by name. This is never zero when ErrorCode is zero. One of Name and TopicId is always populated. (uuid | versions 10+)

    • is_internal: True if the topic is internal. (bool | versions 1+)

    • partitions: Each partition in the topic. ([]MetadataResponsePartition | versions 0+)

      • error_code: The partition error, or 0 if there was no error. (int16 | versions 0+)

      • partition_index: The partition index. (int32 | versions 0+)

      • leader_id: The ID of the leader broker. (int32 | versions 0+)

      • leader_epoch: The leader epoch of this partition. (int32 | versions 7+)

      • replica_nodes: The set of all nodes that host this partition. ([]int32 | versions 0+)

      • isr_nodes: The set of nodes that are in sync with the leader for this partition. ([]int32 | versions 0+)

      • offline_replicas: The set of offline replicas of this partition. ([]int32 | versions 5+)

    • topic_authorized_operations: 32-bit bitfield to represent authorized operations for this topic. (int32 | versions 8+)

  • cluster_authorized_operations: 32-bit bitfield to represent authorized operations for this cluster. (int32 | versions 8-10)

Returns the current max supported version of this message.

Returns the current min supported version of this message.

Link to this function

serialize_request(map, version)

View Source

Receives a map and serialize it to kafka wire format of the given version.

Input content fields:

  • topics: The topics to fetch metadata for. ([]MetadataRequestTopic | versions 0+)

    • topic_id: The topic id. (uuid | versions 10+)

    • name: The topic name. (string | versions 0+)

  • allow_auto_topic_creation: If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. (bool | versions 4+)

  • include_cluster_authorized_operations: Whether to include cluster authorized operations. (bool | versions 8-10)

  • include_topic_authorized_operations: Whether to include topic authorized operations. (bool | versions 8+)