Versions Compared

Key

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

...

Configuration KeyDeprecatedRemovedReason
message.format.versionKafka 3.0Kafka 4.0

KRaft clusters have always used RecordVersion.V2. This will continue to be true in Kafka 4.0. So there is no need for this configuration any more.

If we decide to migrate to a new on-disk format some day, we'll probably use a new mechanism to do so, not a static configuration key. However, no such migration is planned currently.

inter.broker.protocol.versionKafka 3.7Kafka 4.0

In KRaft mode, inter.broker.protocol.version is ignored except for when formatting directories. In Kafka 4.0, it will be removed entirely to avoid confusion.

The desired metadata version when running the format tool can be selected via the command line.

leader.imbalance.per.broker.percentageKafka 3.7Kafka 4.0

KRaft mode has never implemented leader.imbalance.per.broker.percentage. Instead, if leader balancing is turned on, we try to use the preferred replica for all partitions. Therefore, this configuration is not needed.

controlled.shutdown.max.retriesKafka 3.7Kafka 4.0

This is not used in KRaft since the controlled shutdown mechanism relies on heartbeat responses, not RPCs sent from the active controller.

controlled.shutdown.retry.backoff.msKafka 3.7Kafka 4.0

This is not used in KRaft since the controlled shutdown mechanism relies on heartbeat responses, not RPCs sent from the active controller.

password.encoder.secretKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

password.encoder.old.secretKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

password.encoder.keyfactory.algorithmKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

password.encoder.cipher.algorithmKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

password.encoder.key.lengthKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

password.encoder.iterationsKafka 3.7Kafka 4.0

This relates to how secrets are stored in ZK, which is not relevant with KRaft

zookeeper.connectKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.session.timeout.msKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.connection.timeout.msKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.set.aclKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.max.in.flight.requestsKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.client.enableKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.clientCnxnSocketKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.keystore.locationKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.keystore.passwordKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.keystore.typeKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.truststore.locationKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.truststore.passwordKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.truststore.typeKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.protocolKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.enabled.protocolsKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.cipher.suitesKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.endpoint.identification.algorithmKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.crl.enableKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

zookeeper.ssl.ocsp.enableKafka 3.57Kafka 4.0

This is a ZK connection configuration which is not relevant with KRaft

broker.id.generation.enableKafka 3.37Kafka 4.0

Related to automatic broker ID generation, which KRaft does not support. (See KIP-631)

reserved.broker.max.idKafka 3.37Kafka 4.0

Related to automatic broker ID generation, which KRaft does not support. (See KIP-631)

control.plane.listener.nameKafka 3.37Kafka 4.0We no longer need to maintain a separate listener for messages from the controller, since the controller does not send messages out any more (it receives them). (See KIP-631)
zookeeper.metadata.migration.enableKafka 4.0Kafka 4.0

This configuration is used to migrate from ZK mode to KRaft. Since ZK mode is no longer supported in AK 4.0, this configuration will no longer be needed.

Note that this configuration breaks the usual pattern of being deprecated prior to being removed. This is necesary because we certainly don't intend to deprecate migration in 3.7, but neither do we want to support it once ZK mode is gone. So this is a special case.

...

The CurrentControllerId metric shows the ID of the controller, as seen by the node in question. If the current node doesn't think there is an active controller, the value of thisd metric will be -1.

Why create this metric, when ActiveControllerCount already exists? The answer is that in KRaft mode, ActiveControllerCount is only exposed on controller nodes, not on broker nodes. That makes it impossible to monitor what the brokers think the current active controller is.

ZkMigrationPhase

NameContextTypeModeDescription
kafka.server:type=ZkMigration,name=ZkMigrationPhaseBroker and ControllerIntegerKRaft and ZKOutputs the phase of the ZK migration.

ZkMigrationPhase indicates the "phase" of the ZK migration.

...