送信結果チャネル
バージョン 4.0.3 以降では、SenderResult<?> を受信して送信の成功 / 失敗を判断するように resultMetadataChannel を構成できます。
SenderResult には correlationMetadata が含まれており、結果を送信と関連付けることができます。これには、送信されたレコードの TopicPartition とオフセットを示す RecordMetadata も含まれます。
resultMetadataChannel は FluxMessageChannel インスタンスである必要があります。
次に、型 Integer の相関メタデータを使用したこの機能の使用例を示します。
@Bean
FluxMessageChannel sendResults() {
return new FluxMessageChannel();
}
@ServiceActivator(inputChannel = "sendResults")
void handleResults(SenderResult<Integer> result) {
if (result.exception() != null) {
failureFor(result);
}
else {
successFor(result);
}
} 出力レコードに相関メタデータを設定するには、CORRELATION_ID ヘッダーを設定します。
streamBridge.send("words1", MessageBuilder.withPayload("foobar")
.setCorrelationId(42)
.build());Function でこの機能を使用する場合、関数の出力型は、相関 ID ヘッダーが目的の値に設定された Message<?> である必要があります。
メタデータは、少なくとも送信中は一意である必要があります。