KAFKA-9931: Implement KIP-605 to expand support for Connect worker internal topic configurations#8654
Conversation
|
This includes the commit from #8653, which corrects the replication factor properties in one of the MirrorMaker2 integration test, which should have been: but instead were Note the extra IOW, this change causes a Connect distributed worker or MirrorMaker2 to fail upon startup where it didn't prior to this change if/when the configuration contains extra properties that begin with any of the following prefixes and where the unprefixed configuration does not match a valid topic setting in the Kafka broker being used:
|
|
BTW, I've improved the error message when Connect's
Here's what this looks like in the log message just before the herder exits: |
|
I've added some integration tests for creating the internal topic, including verifying some existing functionality w/r/t the replication factor and number of partitions with various Kafka cluster sizes. |
kkonstantine
left a comment
There was a problem hiding this comment.
Thanks for the PR @rhauch
This looks pretty good already!
I left a few minor comments after a first pass.
|
fyi, builds fail on checkstyle. |
|
Thanks for the review, @kkonstantine. I think I've incorporated all of your suggestions. |
|
ok to test |
kkonstantine
left a comment
There was a problem hiding this comment.
I think it's ready.
Added a few optional comments that caught my eye on the last pass, but otherwise
LGTM
|
retest this please |
…r distributed worker internal topics Expanded the allowed values for the internal topics’ replication factor and partitions from positive values to also include -1 to signify that the broker defaults should be used. The Kafka storage classes were already constructing a `NewTopic` object (always with a replication factor and partitions) and sending it to Kafka when required. This change will avoid setting the replication factor and/or number of partitions on this `NewTopic` if the worker configuration uses -1 for the corresponding configuration value. Quite a few new tests were added to verify that the `TopicAdmin` utility class is correctly using the AdminClient, and that the `DistributedConfig` validators for these configurations are correct.
…istributed config Added support for additional topic settings used when creating the config, status, and offset internal topics.
74801cb to
4e2d988
Compare
|
Incorporated @kkonstantine's more recent suggestions, and further changed Rebased to pick up the changes from #8653 rather than incorporating the same commit in this PR. |
|
FYI: previous builds had no failures related to Connect. |
kkonstantine
left a comment
There was a problem hiding this comment.
Thanks @rhauch
LGTM, expecting that the current build won't have related failures as well.
|
retest this please |
|
All Connect unit and integration tests passed in all of the builds, but each of the builds failed due to a few flaky integration tests in either Core or Streams. |
* 'trunk' of github.com:apache/kafka: KAFKA-9888: Copy connector configs before passing to REST extensions (apache#8511) KAFKA-9931: Implement KIP-605 to expand support for Connect worker internal topic configurations (apache#8654) KAFKA-6145: Add unit tests for assignments of only stateless tasks (apache#8713) MINOR: Fix join group request timeout lower bound (apache#8702) MINOR: Improve security documentation for Kafka Streams apache#8710 KAFKA-6145: KIP-441: Enforce Standby Task Stickiness (apache#8696) KAFKA-10003: Mark KStream.through() as deprecated and update Scala API (apache#8679)
KIP-605 has passed.
Expanded the allowed values for the internal topics’ replication factor and partitions from positive values to also include -1 to signify that the broker defaults should be used.
The Kafka storage classes were already constructing a
NewTopicobject (always with a replication factor and partitions) and sending it to Kafka when required. This change will avoid setting the replication factor and/or number of partitions on thisNewTopicif the worker configuration uses -1 for the corresponding configuration value.Quite a few new tests were added to verify that the
TopicAdminutility class is correctly using the AdminClient, that theDistributedConfigvalidators for these configurations are correct, and that theDistributedConfigis correctly assembling the configuration properties that define the topic settings, which are now accessed by the three Kafka storage objects before they create the topics.Also added support for additional topic settings used when creating the config, status, and offset internal topics.
Committer Checklist (excluded from commit message)