1. What’s New in 2.8 Since 2.7
This section covers the changes made from version 2.7 to version 2.8. For changes in earlier version, see [history].
1.1. Kafka Client Version
This version requires the 3.0.0 kafka-clients
When using transactions, kafka-clients 3.0.0 and later no longer support EOSMode.V2 (aka BETA) (and automatic fallback to V1 - aka ALPHA) with brokers earlier than 2.5; you must therefore override the default EOSMode (V2) with V1 if your brokers are older (or upgrade your brokers).
|
See [exactly-once] and KIP-447 for more information.
1.2. Package Changes
Classes and interfaces related to type mapping have been moved from …support.converter to …support.mapping.
-
AbstractJavaTypeMapper -
ClassMapper -
DefaultJackson2JavaTypeMapper -
Jackson2JavaTypeMapper
1.3. Out of Order Manual Commits
The listener container can now be configured to accept manual offset commits out of order (usually asynchronously). The container will defer the commit until the missing offset is acknowledged. See [ooo-commits] for more information.
1.4. @KafkaListener Changes
It is now possible to specify whether the listener method is a batch listener on the method itself. This allows the same container factory to be used for both record and batch listeners.
See [batch-listeners] for more information.
Batch listeners can now handle conversion exceptions.
See [batch-listener-conv-errors] for more information.
RecordFilterStrategy, when used with batch listeners, can now filter the entire batch in one call.
See the note at the end of [batch-listeners] for more information.
1.5. KafkaTemplate Changes
You can now receive a single record, given the topic, partition and offset. See [kafka-template-receive] for more information.
1.6. CommonErrorHandler Added
The legacy GenericErrorHandler and its sub-interface hierarchies for record an batch listeners have been replaced by a new single interface CommonErrorHandler with implementations corresponding to most legacy implementations of GenericErrorHandler.
See [error-handlers] for more information.
1.7. Listener Container Changes
The interceptBeforeTx container property is now true by default.
The authorizationExceptionRetryInterval property has been renamed to authExceptionRetryInterval and now applies to AuthenticationException s in addition to AuthorizationException s previously.
Both exceptions are considered fatal and the container will stop by default, unless this property is set.
See [kafka-container] and [container-props] for more information.
1.8. Serializer/Deserializer Changes
The DelegatingByTopicSerializer and DelegatingByTopicDeserializer are now provided.
See [delegating-serialization] for more information.
1.9. DeadLetterPublishingRecover Changes
The property stripPreviousExceptionHeaders is now true by default.
See [dlpr-headers] for more information.