送信結果チャネル
バージョン 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<?>
である必要があります。
メタデータは、少なくとも送信中は一意である必要があります。