|
1 | | -=== What's New in 2.7 Since 2.6 |
| 1 | +=== What's New in 2.8 Since 2.7 |
2 | 2 |
|
3 | | -This section covers the changes made from version 2.6 to version 2.7. |
| 3 | +This section covers the changes made from version 2.7 to version 2.8. |
4 | 4 | For changes in earlier version, see <<history>>. |
5 | 5 |
|
6 | | -[[x27-kafka-client]] |
| 6 | +[[x28-kafka-client]] |
7 | 7 | ==== Kafka Client Version |
8 | 8 |
|
9 | | -This version requires the 2.7.0 `kafka-clients`. |
10 | | -It is also compatible with the 2.8.0 clients, since version 2.7.1; see <<update-deps>>. |
| 9 | +This version requires the 2.8.0 `kafka-clients`. |
11 | 10 |
|
12 | | -[[x-27-nonblock-retry]] |
13 | | -==== Non-Blocking Delayed Retries Using Topics |
| 11 | +[[x28-ooo-commits]] |
| 12 | +==== Out of Order Manual Commits |
14 | 13 |
|
15 | | -This significant new feature is added in this release. |
16 | | -When strict ordering is not important, failed deliveries can be sent to another topic to be consumed later. |
17 | | -A series of such retry topics can be configured, with increasing delays. |
18 | | -See <<retry-topic>> for more information. |
19 | | - |
20 | | -[[x27-container]] |
21 | | -==== Listener Container Changes |
22 | | - |
23 | | -The `onlyLogRecordMetadata` container property is now `true` by default. |
24 | | - |
25 | | -A new container property `stopImmediate` is now available. |
26 | | - |
27 | | -See <<container-props>> for more information. |
28 | | - |
29 | | -Error handlers that use a `BackOff` between delivery attempts (e.g. `SeekToCurrentErrorHandler` and `DefaultAfterRollbackProcessor`) will now exit the back off interval soon after the container is stopped, rather than delaying the stop. |
30 | | -See <<after-rollback>> and <<seek-to-current>> for more information. |
31 | | - |
32 | | -Error handlers and after rollback processors that extend `FailedRecordProcessor` can now be configured with one or more `RetryListener` s to receive information about retry and recovery progress. |
33 | | - |
34 | | -See See <<after-rollback>>, <<seek-to-current>>, and <<recovering-batch-eh>> for more information. |
35 | | - |
36 | | -The `RecordInterceptor` now has additional methods called after the listener returns (normally, or by throwing an exception). |
37 | | -It also has a sub-interface `ConsumerAwareRecordInterceptor`. |
38 | | -In addition, there is now a `BatchInterceptor` for batch listeners. |
39 | | -See <<message-listener-container>> for more information. |
40 | | - |
41 | | -[[x27-listener]] |
42 | | -==== `@KafkaListener` Changes |
43 | | - |
44 | | -You can now validate the payload parameter of `@KafkaHandler` methods (class-level listeners). |
45 | | -See <<kafka-validation>> for more information. |
46 | | - |
47 | | -You can now set the `rawRecordHeader` property on the `MessagingMessageConverter` and `BatchMessagingMessageConverter` which causes the raw `ConsumerRecord` to be added to the converted `Message<?>`. |
48 | | -This is useful, for example, if you wish to use a `DeadLetterPublishingRecoverer` in a listener error handler. |
49 | | -See <<listener-error-handlers>> for more information. |
50 | | - |
51 | | -You can now modify `@KafkaListener` annotations during application initialization. |
52 | | -See <<kafkalistener-attrs>> for more information. |
53 | | - |
54 | | -[[x27-dlt]] |
55 | | -==== `DeadLetterPublishingRecover` Changes |
56 | | - |
57 | | -Now, if both the key and value fail deserialization, the original values are published to the DLT. |
58 | | -Previously, the value was populated but the key `DeserializationException` remained in the headers. |
59 | | -There is a breaking API change, if you subclassed the recoverer and overrode the `createProducerRecord` method. |
60 | | - |
61 | | -In addition, the recoverer verifies that the partition selected by the destination resolver actually exists before publishing to it. |
62 | | - |
63 | | -See <<dead-letters>> for more information. |
64 | | - |
65 | | -[[x27-CKTM]] |
66 | | -==== `ChainedKafkaTransactionManager` is Deprecated |
67 | | - |
68 | | -See <<transactions>> for more information. |
69 | | - |
70 | | -[[x27-RKT]] |
71 | | -==== `ReplyingKafkaTemplate` Changes |
72 | | - |
73 | | -There is now a mechanism to examine a reply and fail the future exceptionally if some condition exists. |
74 | | - |
75 | | -Support for sending and receiving `spring-messaging` `Message<?>` s has been added. |
76 | | - |
77 | | -See <<replying-template>> for more information. |
78 | | - |
79 | | -[[x27-streams]] |
80 | | -==== Kafka Streams Changes |
81 | | - |
82 | | -By default, the `StreamsBuilderFactoryBean` is now configured to not clean up local state. |
83 | | -See <<streams-config>> for more information. |
84 | | - |
85 | | -[[x27-admin]] |
86 | | -==== `KafkaAdmin` Changes |
87 | | - |
88 | | -New methods `createOrModifyTopics` and `describeTopics` have been added. |
89 | | -`KafkaAdmin.NewTopics` has been added to facilitate configuring multiple topics in a single bean. |
90 | | -See <<configuring-topics>> for more information. |
91 | | - |
92 | | -[[x27-conv]] |
93 | | -==== `MessageConverter` Changes |
94 | | - |
95 | | -It is now possible to add a `spring-messaging` `SmartMessageConverter` to the `MessagingMessageConverter`, allowing content negotiation based on the `contentType` header. |
96 | | -See <<messaging-message-conversion>> for more information. |
97 | | - |
98 | | -[[x27-sequencing]] |
99 | | -==== Sequencing `@KafkaListener` s |
100 | | - |
101 | | -See <<sequencing>> for more information. |
102 | | - |
103 | | -[[x27-exp-backoff]] |
104 | | -==== `ExponentialBackOffWithMaxRetries` |
105 | | - |
106 | | -A new `BackOff` implementation is provided, making it more convenient to configure the max retries. |
107 | | -See <<exp-backoff>> for more information. |
108 | | - |
109 | | -[[x27-delegating-eh]] |
110 | | -==== Conditional Delegating Error Handlers |
111 | | - |
112 | | -These new error handlers can be configured to delegate to different error handlers, depending on the exception type. |
113 | | -See <<cond-eh>> for more information. |
| 14 | +The listener container can now be configured to accept manual offset commits out of order (usually asynchronously). |
| 15 | +The container will defer the commit until the missing offset is acknowledged. |
| 16 | +See <<ooo-commits>> for more information. |
0 commit comments