...
As described above, AdminClient will now support bootstrap.controller
in addition to bootstrap.server
. The following APIs will be supported:
API | Notes |
---|---|
alterConfigs | |
createAcls | |
deleteAcls | |
describeCluster | |
describeAcls | |
describeConfigs | |
describeClientQuotas | |
alterClientQuotas | |
incrementalAlterConfigs | This can be used to alter log4j settings on inactive controllers. That is the one case where we don't send the RPC to the active controller. |
describeDelegationToken | |
electLeaders | |
alterPartitionReassignments | |
listPartitionReassignments | |
describeClientQuotas | |
describeUserScramCredentials | |
describeFeatures | |
updateFeatures | |
describeMetadataQuorum | |
unregisterBroker | this affects brokers, not controllers |
When an unsupported API is used with bootstrap.controller
, UnsupportedEndpointType
is returned as an error.
Controller Changes
Fix compatibility gates
Previously, the controller used ApiVersionsResponse messages obtained from the other controllers to determine:
...
With the introduction of controller registrations, the active controller will simply use this information instead. This will be more accurate than the old system.
New APIs
The following RPCs will now be supported on the controller:
API | Notes |
---|---|
DESCRIBE_CONFIGS | Even on inactive controllers, this can be used to alter the log4j settings dynamically. |
DESCRIBE_CLUSTER | As described above, DESCRIBE_CLUSTER will be used by AdminClient for bootstrapping. |
REGISTER_CONTROLLER |
Compatibility, Deprecation, and Migration Plan
Client Compatibility Matrix
pre-KIP-919 broker | post-KIP-919 broker | pre-KIP-919 controller | post KIP-919 controller | |
---|---|---|---|---|
bootstrap.server | success | success | Fails because METADATA request is not supported. | Fails because METADATA request is not supported. |
bootstrap.controller | Fails because DESCRIBE_CLUSTER returns MISMATCHED_ENDPOINT | Fails because DESCRIBE_CLUSTER v1 is not supported. | Fails because DESCRIBE_CLUSTER v1 is not supported. | If the metadata version is too old to support controller registrations, UNSUPPORTED_ENDPOINT_TYPE. Otherwise, success. |
Controller Registration MetadataVersion Gate
...