kafka/docs
Luke Chen e6db0ca48c
KAFKA-13598: enable idempotence producer by default and validate the configs (#11691)
In v3.0, we changed the default value for `enable.idempotence` to true, but we didn't adjust the validator and the `idempotence` enabled check method. So if a user didn't explicitly enable idempotence, this feature won't be turned on. This patch addresses the problem, cleans up associated logic, and fixes tests that broke as a result of properly applying the new default. Specifically it does the following:

1. fix the `ProducerConfig#idempotenceEnabled` method, to make it correctly detect if `idempotence` is enabled or not
2. remove some unnecessary config overridden and checks due to we already default `acks`, `retries` and `enable.idempotence` configs.
3. move the config validator for the idempotent producer from `KafkaProducer` into `ProducerConfig`. The config validation should be the responsibility of `ProducerConfig` class.
4. add an `AbstractConfig#hasKeyInOriginals` method, to avoid `originals` configs get copied and only want to check the existence of the key. 
5. fix many broken tests. As mentioned, we didn't actually enable idempotence in v3.0. After this PR, there are some tests broken due to some different behavior between idempotent and non-idempotent producer.
6. add additional tests to validate configuration behavior

Reviewers: Kirk True <kirk@mustardgrain.com>, Ismael Juma <ismael@juma.me.uk>, Mickael Maison <mimaison@users.noreply.github.com>, Jason Gustafson <jason@confluent.io>
2022-02-05 10:53:27 -08:00
..
documentation KAFKA-10679: [Streams] migrate kafka-site updated docs to kafka/docs (#9554) 2020-11-04 08:30:10 -05:00
images KAFKA-5636: Add Sliding Windows documentation (#9264) 2020-09-10 21:55:11 -07:00
js MINOR: Bump trunk to 3.2.0-SNAPSHOT (#11458) 2021-11-02 13:38:54 +01:00
streams MINOR: Update rocksDb memory management doc (#11528) 2021-11-25 10:20:32 +01:00
api.html MINOR: Fix indentation for several doc pages (#10766) 2021-06-17 15:58:40 -04:00
configuration.html MINOR: Fix indentation for several doc pages (#10766) 2021-06-17 15:58:40 -04:00
connect.html KAFKA-13035 updated documentation for connector restart REST API to … (#10975) 2021-07-06 13:31:40 -05:00
design.html KAFKA-13374: Update doc to mention read from leader/followers (#11408) 2021-12-20 18:34:20 +01:00
documentation.html MINOR: Update doc for 3.1 (#11539) 2021-12-03 09:55:33 +01:00
ecosystem.html MINOR: Improve introduction section in docs to better cover connect and streams. Make uses and ecosystem pages stand alone. 2016-09-28 16:30:21 -07:00
implementation.html MINOR: Update documentation and DumpLogSegments tool for addition of `deleteHorizonMs` in batch format (#11694) 2022-02-04 16:20:37 -08:00
introduction.html MINOR: Fix broken link in introduction.html (#11249) 2021-10-11 16:45:36 +02:00
migration.html KAFKA-10679: Migrate upgrade changes from site to kafka/docs (#9551) 2020-11-03 13:40:44 -05:00
ops.html KAFKA-13430: Remove broker-wide quota properties from the documentation (#11463) 2021-11-04 10:04:02 +01:00
protocol.html KAFKA-10679: Migrate upgrade changes from site to kafka/docs (#9551) 2020-11-03 13:40:44 -05:00
quickstart.html MINOR: Update doc for 3.1 (#11539) 2021-12-03 09:55:33 +01:00
security.html MINOR: fix code listings security.html (#10770) 2021-06-01 13:20:35 +02:00
toc.html MINOR: Fix indentation for several doc pages (#10766) 2021-06-17 15:58:40 -04:00
upgrade.html KAFKA-13598: enable idempotence producer by default and validate the configs (#11691) 2022-02-05 10:53:27 -08:00
uses.html KAFKA-10679: Migrate upgrade changes from site to kafka/docs (#9551) 2020-11-03 13:40:44 -05:00