Ron Dagostino created KAFKA-13224:
-------------------------------------
Summary: broker.id does not appear in config's originals map when
setting just node.id
Key: KAFKA-13224
URL: https://issues.apache.org/jira/browse/KAFKA-13224
Project: Kafka
Issue Type: Bug
Affects Versions: 3.0.0
Reporter: Ron Dagostino
Assignee: Ron Dagostino
Plugins may expect broker.id to exist as a key in the config's various
originals()-related maps, but with KRaft we rely solely on node.id for the
broker's ID, and with the Zk-based brokers we provide the option to specify
node.id in addition to (or as a full replacement for) broker.id.
There are multiple problems related to this switch to node.id:
# We do not enforce consistency between explicitly-specified broker.id and
node.id properties in the config -- it is entirely possible right now that we
could set broker.id=0 and also set node.id=1, and the broker will use 1 for
it's ID. This is confusing at best; the broker should detect this inconsistency
and fail to start with a ConfigException.
# When node.id is set, both that value and any explicitly-set broker.id value
will exist in the config's *originals()-related maps*. Downstream components
are often configured based on these maps, and they may ask for the broker.id,
so downstream components may be misconfigured if the values differ, or they may
fail during configuration if no broker.id key exists in the map at all.
# The config's *values()-related maps* will contain either the
explicitly-specified broker.id value or the default value of -1. When node.id
is set, both that value (which cannot be negative) and the (potentially -1)
broker.id value will exist in the config's values()-related maps. Downstream
components are often configured based on these maps, and they may ask for the
broker.id, so downstream components may be misconfigured if the broker.id value
differs from the broker's true ID.
The broker should detect inconsistency between explicitly-specified broker.id
and node.id values and fail startup accordingly. It should also ensures that
the config's originals()- and values()-related maps contain the same mapped
values for both broker.id and node.id keys.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)