Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Handle rebootstrapping disabled clients

...

The Kafka protocol doesn't quite have sessions like many other protocols, but it does have an initial RPC used by a client when it connects to a broker which is ApiVersions. By adding optional ClusterId and NodeId information to the ApiVersions request, the receiving broker would be able to tell the client when it is attempting to make a misrouted connection.

If the client has disabled rebootstrapping by setting metadata.recovery.strategy=NONE , this checking is also disabled because the client would not be able to rebootstrap when instructed.

Public Interfaces

Kafka protocol

...

A low importance configuration is added just in case an unforeseen situation arises where the new checks introduced by this KIP cause problems with existing deployments. Kafka clients have always supported cluster ID change without requiring restart. By clearing cluster metadata when rebootstrapping begins, Kafka clients should be able to switch cluster ID safely which could be useful in disaster recovery scenarios.

ConfigurationDescriptionValues
metadata.cluster.check.enable Whether the client should send cluster and node information when connecting to a broker to enable it to check for a misrouted connection. This configuration is ignored if rebootstrapping is disabled by setting the configuration metadata.recovery.strategy=NONE . If the client is connecting to a broker older than Apache Kafka <insert version here>, no checking is performed and this configuration has no effect.Boolean. true  (default), or false 

Compatibility, Deprecation, and Migration Plan

...