View Source KlifeProtocol.Messages.ConsumerGroupHeartbeat (Klife Protocol v0.3.0)

Kafka protocol ConsumerGroupHeartbeat message

Request versions summary:

  • The ConsumerGroupHeartbeat API is added as part of KIP-848 and is still under developement. Hence, the API is not exposed by default by brokers unless explicitely enabled.

Response versions summary:

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 0+)

  • error_code: The top-level error code, or 0 if there was no error (int16 | versions 0+)

  • error_message: The top-level error message, or null if there was no error. (string | versions 0+)

  • member_id: The member id generated by the coordinator. Only provided when the member joins with MemberEpoch == 0. (string | versions 0+)

  • member_epoch: The member epoch. (int32 | versions 0+)

  • should_compute_assignment: True if the member should compute the assignment for the group. (bool | versions 0+)

  • heartbeat_interval_ms: The heartbeat interval in milliseconds. (int32 | versions 0+)

  • assignment: null if not provided; the assignment otherwise. (Assignment | versions 0+)

    • error: The assigned error. (int8 | versions 0+)

    • assigned_topic_partitions: The partitions assigned to the member that can be used immediately. ([]TopicPartitions | versions 0+)

      • topic_id: The topic ID. (uuid | versions 0+)

      • partitions: The partitions. ([]int32 | versions 0+)

    • pending_topic_partitions: The partitions assigned to the member that cannot be used because they are not released by their former owners yet. ([]TopicPartitions | versions 0+)

      • topic_id: The topic ID. (uuid | versions 0+)

      • partitions: The partitions. ([]int32 | versions 0+)

    • metadata_version: The version of the metadata. (int16 | versions 0+)

    • metadata_bytes: The assigned metadata. (bytes | versions 0+)

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:

  • group_id: The group identifier. (string | versions 0+)

  • member_id: The member id generated by the coordinator. The member id must be kept during the entire lifetime of the member. (string | versions 0+)

  • member_epoch: The current member epoch; 0 to join the group; -1 to leave the group; -2 to indicate that the static member will rejoin. (int32 | versions 0+)

  • instance_id: null if not provided or if it didn't change since the last heartbeat; the instance Id otherwise. (string | versions 0+)

  • rack_id: null if not provided or if it didn't change since the last heartbeat; the rack ID of consumer otherwise. (string | versions 0+)

  • rebalance_timeout_ms: -1 if it didn't chance since the last heartbeat; the maximum time in milliseconds that the coordinator will wait on the member to revoke its partitions otherwise. (int32 | versions 0+)

  • subscribed_topic_names: null if it didn't change since the last heartbeat; the subscribed topic names otherwise. ([]string | versions 0+)

  • subscribed_topic_regex: null if it didn't change since the last heartbeat; the subscribed topic regex otherwise (string | versions 0+)

  • server_assignor: null if not used or if it didn't change since the last heartbeat; the server side assignor to use otherwise. (string | versions 0+)

  • client_assignors: null if not used or if it didn't change since the last heartbeat; the list of client-side assignors otherwise. ([]Assignor | versions 0+)

    • name: The name of the assignor. (string | versions 0+)

    • minimum_version: The minimum supported version for the metadata. (int16 | versions 0+)

    • maximum_version: The maximum supported version for the metadata. (int16 | versions 0+)

    • reason: The reason of the metadata update. (int8 | versions 0+)

    • metadata_version: The version of the metadata. (int16 | versions 0+)

    • metadata_bytes: The metadata. (bytes | versions 0+)

  • topic_partitions: null if it didn't change since the last heartbeat; the partitions owned by the member. ([]TopicPartitions | versions 0+)

    • topic_id: The topic ID. (uuid | versions 0+)

    • partitions: The partitions. ([]int32 | versions 0+)