GH-694: Add recordMetadataChannel (send confirm.)

Resolves #694

Also fix deprecation of `ChannelInterceptorAware`.
This commit is contained in:
Gary Russell
2019-07-03 15:50:20 -04:00
committed by Soby Chacko
parent 6976bcd3a8
commit 48aae76ec9
4 changed files with 63 additions and 3 deletions

View File

@@ -332,6 +332,16 @@ Set to `true` to override the default binding destination (topic name) with the
If the header is not present, the default binding destination is used.
Default: `false`.
+
recordMetadataChannel::
The bean name of a `MessageChannel` to which successful send results should be sent; the bean must exist in the application context.
The message sent to the channel is the sent message (after conversion, if any) with an additional header `KafkaHeaders.RECORD_METADATA`.
The header contains a `RecordMetadata` object provided by the Kafka client; it includes the partition and offset where the record was written in the topic.
`ResultMetadata meta = sendResultMsg.getHeaders().get(KafkaHeaders.RECORD_METADATA, RecordMetadata.class)`
Failed sends go the producer error channel (if configured); see <<kafka-error-channels>>.
Default: null
+
NOTE: The Kafka binder uses the `partitionCount` setting of the producer as a hint to create a topic with the given partition count (in conjunction with the `minPartitionCount`, the maximum of the two being the value being used).
Exercise caution when configuring both `minPartitionCount` for a binder and `partitionCount` for an application, as the larger value is used.