Table of Contents |
---|
Status
Current state: Adopted
Under Discussion thread: link
Discussion Vote thread: TBD link
JIRA:
Jira | ||||||
---|---|---|---|---|---|---|
|
...
config.storage.replication.factor
– defaults to 3, value must be >= 1offset.storage.replication.factor
– defaults to 3, value must be >= 1status.storage.replication.factor
– defaults to 3, value must be >= 1offset.storage.partitions
– defaults to 25, value must be >= 1status.storage.partitions
– defaults to 5, value must be >= 1
The topic used for storage of connector configurations must always have exactly one partition, which is why there is no configuration property to set the partition for this topic.
At the time of KIP-154, the AdminClient API required the replication factor and partitions be greater than or equal to one. But more recently, KIP-464 modified the AdminClient APIs to support creating topics by using the broker's default.replication.factor
value and/or the broker's num.partitions
value. The Kafka Connect distributed worker configuration currently does not support using the broker's default replication factor or number of partitions.
The Kafka Connect distributed worker configuration also does not support defining or passing other topic settings when the Connect worker creates the configuration, offset, and status topics.
...
The allowed values for the following three five existing Connect distributed worker properties will be changed to also allow -1 to signal that the broker's default replication factor should be used for the newly created topics:
config.storage.replication.factor
offset.storage.replication.factor
status.storage.replication.factor
offset.storage.partitions
status.storage.partitions
Also, the distributed worker configuration will be changed to recognize additional optional properties that match the following patterns, and to pass them (without the prefix) to the new topic requests created by the Connect distributed worker when it attempts to create the internal topics:
Property pattern | Type | Default | Description | Excluded properties |
---|---|---|---|---|
config.storage.<topic-specific-setting> | several | broker value | Additional topic-specific settings used when creating the internal Kafka topic where Connect stores connector configurations. Here " |
|
offset.storage.<topic-specific-setting> | several | broker value | Additional topic-specific settings used when creating the internal Kafka topic where Connect stores source offsets for source connectors. Here Here "<topic-specific-setting> " corresponds to any of the must be any valid Kafka topic-level configurations for the version of the Kafka broker where the topic should be created; the Connect worker will fail upon startup if the "<topic-specific-setting> " is not known to the broker. |
|
status.storage.<topic-specific-setting> | several | broker value | Additional topic-specific settings used when creating the internal Kafka topic where Connect stores connector and task statuses. Here Here "<topic-specific-setting> " corresponds to any of the must be any valid Kafka topic-level configurations for the version of the Kafka broker where the topic should be created; the Connect worker will fail upon startup if the "<topic-specific-setting> " is not known to the broker. |
|
...
Note that some topic-specific properties are excluded because the distributed worker always sets specific values. Therefore, if a distributed worker configuration does set any of these excluded properties, the distributed worker will issue a warning that such properties should not be set and will be ignored.
The Connect worker will fail upon startup if any of the topic-settings specified in the above configurations are not known to the Kafka broker.
This proposal does not otherwise change any other behavior of how or when the Connect worker creates internal topics. This proposal also does not affect Connect standalone behavior.
...
These changes are backward compatible, and existing Connect distributed worker configurations will continue to work with no change in behavior, unless those configurations define unknown topic settings using any of the patterns defined above, in which case the Connect worker or MirrorMaker2 process will fail upon startup. All new properties are prefixed with one of three prefixes (e.g., `config.storage.`, `offset.storage.`, and `status.storage.`) already used for other worker-level properties, and thus are not expected to clash with any properties used for REST Extensions or config providers.
...