Versions Compared

Key

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

...

Code Block
languagejs
{
  "apiKey": 58,
  "type": "request",
  "name": "BrokerHeartbeatRequest",
  "validVersions": "0",
  "flexibleVersions": "0+",
  "fields": [
    { "name": "TargetStateBrokerId", "type": "int8int32", "versions": "0+",
      "about": "The state that the broker wants to reachID." },
    { "name": "BrokerIdBrokerEpoch", "type": "int32int64", "versions": "0+", "default": "-1",
      "about": "The broker IDepoch." },
    { "name": "BrokerEpochCurrentMetadataOffset", "type": "int64", "versions": "0+",
      "defaultabout": "-1",
      "about": "The broker epochOne more than the highest metadata offset which the broker has reached." },
    { "name": "CurrentMetadataOffsetShouldFence", "type": "int64bool", "versions": "0+",
      "about": "OneTrue more thanif the highestbroker metadatawants offsetto whichbe thefenced, brokerfalse has reachedotherwise." }
  ]
}   

{
  "apiKey": 58,
  "type": "response",
  "name": "BrokerHeartbeatResponse",
  "validVersions": "0",
  "flexibleVersions": "0+",
  "fields": [
    { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
      "about": "Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
    { "name": "ErrorCode", "type": "int16", "versions": "0+",
      "about": "The error code, or 0 if there was no error." },
    { "name": "NextStateIsCaughtUp", "type": "int8bool", "versions": "0+",
      "about": "True if the broker has approximately caught up with the latest metadata." },
    { "name": "IsFenced", "type": "The state to which"bool", "versions": "0+",
      "about": "True if the broker shouldis transitionfenced." }
  ]
}

The controller will wait to unfence a broker until it has sent at least one heartbeat where that broker's currentState is active.  So a typical transition will look like this:

...