Versions Compared

Key

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

...

As described above, AdminClient will now support bootstrap.controller  in addition to bootstrap.server . The following APIs will be supported:

APINotes
alterConfigs
createAcls
deleteAcls
describeCluster
describeAcls
describeConfigs
describeClientQuotas
alterClientQuotas
incrementalAlterConfigsThis 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
unregisterBrokerthis 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:

APINotes
DESCRIBE_CONFIGSEven on inactive controllers, this can be used to alter the log4j settings dynamically.
DESCRIBE_CLUSTERAs described above, DESCRIBE_CLUSTER will be used by AdminClient for bootstrapping.
REGISTER_CONTROLLER

Compatibility, Deprecation, and Migration Plan

Client Compatibility Matrix


pre-KIP-919 brokerpost-KIP-919 brokerpre-KIP-919 controllerpost KIP-919 controller
bootstrap.serversuccesssuccess

Fails because METADATA request is not supported.

Fails because METADATA request is not supported.

bootstrap.controllerFails because DESCRIBE_CLUSTER returns MISMATCHED_ENDPOINTFails 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

...