THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
{ "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:
...