クラス MessagingMessageConverter
java.lang.ObjectSE
org.springframework.kafka.support.converter.MessagingMessageConverter
- 実装されているすべてのインターフェース:
MessageConverter,RecordMessageConverter
- 既知の直属サブクラス
JacksonJsonMessageConverter、JacksonProjectingMessageConverter、JsonMessageConverter、ProjectingMessageConverter
個々のメッセージを受信するメッセージリスナーのメッセージング
MessageConverter 実装。 返されるメッセージに ConsumerRecord に基づいて KafkaHeaders を移入します。
- 作成者:
- Marius Bogoevici, Gary Russell, Dariusz Szablinski, Biju Kunjummen, Soby Chacko
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターコンストラクター説明KafkaHeaders.PARTITIONを使用してターゲットパーティションを決定するインスタンスを構築します。MessagingMessageConverter(FunctionSE<Message<?>, @Nullable IntegerSE> partitionProvider) 提供されたパーティションプロバイダー関数を使用するインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明protected @Nullable ObjectSEconvertPayload(Message<?> message) サブクラスはペイロードを変換できます。デフォルトでは、変更されずに Kafka に送信されます。protected ObjectSEextractAndConvertValue(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, @Nullable TypeSE type) サブクラスは値を変換できます。デフォルトでは、変換できるSmartMessageConverterがない限り、Kafka によって提供されるものとして返されます。org.apache.kafka.clients.producer.ProducerRecord<?, ?> fromMessage(Message<?> messageArg, @Nullable StringSE defaultTopic) メッセージをプロデューサーレコードに変換します。protected MessageConverterprotected org.apache.kafka.common.header.HeadersinitialRecordHeaders(Message<?> message) サブクラスは、マップされる前に追加のヘッダーを設定できます。voidsetGenerateMessageId(boolean generateMessageId) 作成されたメッセージに対してMessageidsを生成します。voidsetGenerateTimestamp(boolean generateTimestamp) 生成されたメッセージに対してtimestampを生成します。voidsetHeaderMapper(KafkaHeaderMapper headerMapper) ヘッダーマッパーを設定してヘッダーをマップします。voidsetMessagingConverter(@Nullable SmartMessageConverter messagingConverter) spring-messagingSmartMessageConverterを設定して、レコード値を目的の型に変換します。voidsetRawRecordHeader(boolean rawRecordHeader) true に設定すると、生のConsumerRecordがヘッダーKafkaHeaders.RAW_DATAとして追加されます。Message<?> toMessage(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, @Nullable ObjectSE acknowledgment, @Nullable ObjectSE consumer, @Nullable TypeSE type) ConsumerRecordをMessageに変換します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.kafka.support.converter.MessageConverter から継承されたメソッド
commonHeaders
フィールドの詳細
logger
コンストラクターの詳細
MessagingMessageConverter
public MessagingMessageConverter()KafkaHeaders.PARTITIONを使用してターゲットパーティションを決定するインスタンスを構築します。MessagingMessageConverter
提供されたパーティションプロバイダー関数を使用するインスタンスを構築します。この関数は null を返して、パーティションの選択を Kafka クライアントに委譲できます。- パラメーター:
partitionProvider- プロバイダー。- 導入:
- 3.0.8
メソッドの詳細
setGenerateMessageId
public void setGenerateMessageId(boolean generateMessageId) - パラメーター:
generateMessageId- メッセージ ID を生成する必要がある場合は true
setGenerateTimestamp
public void setGenerateTimestamp(boolean generateTimestamp) 生成されたメッセージに対してtimestampを生成します。falseに設定すると、代わりに -1 が使用されます。デフォルトではfalseに設定されています。- パラメーター:
generateTimestamp- タイムスタンプを生成する必要がある場合は true
setHeaderMapper
ヘッダーマッパーを設定してヘッダーをマップします。- パラメーター:
headerMapper- マッパー。- 導入:
- 1.3
setRawRecordHeader
public void setRawRecordHeader(boolean rawRecordHeader) true に設定すると、生のConsumerRecordがヘッダーKafkaHeaders.RAW_DATAとして追加されます。- パラメーター:
rawRecordHeader- true の場合、ヘッダーを追加します。- 導入:
- 2.7
getMessagingConverter
setMessagingConverter
spring-messagingSmartMessageConverterを設定して、レコード値を目的の型に変換します。これにより、受信にマップされるときにMessageHeaders.CONTENT_TYPEが文字列に変換されます。IMPORTANT: このコンバーターの
fromMessage(Message, String)メソッドは、ProducerRecord.value()プロパティにメッセージペイロードを含むProducerRecordへの送信変換のために呼び出されます。toMessage(ConsumerRecord, Object, Object, Type)は、ペイロードがConsumerRecord.value()プロパティであるConsumerRecordからの受信変換のために呼び出されます。MessageConverter.toMessage(Object, MessageHeaders)メソッドは、fromMessage(Message, String)に渡されたMessageから新しい送信Messageを作成するために呼び出されます。同様に、toMessage(ConsumerRecord, Acknowledgment, Consumer, Type)では、このコンバーターがConsumerRecordから新しいMessageを作成した後、MessageConverter.fromMessage(Message, Class)メソッドが呼び出され、最終的な受信メッセージが新しく変換されたペイロードで作成されます。どちらの場合でも、
SmartMessageConverterがnullを返す場合は、元のメッセージが使用されます。- パラメーター:
messagingConverter- コンバーター。- 導入:
- 2.7.1
toMessage
public Message<?> toMessage(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, @Nullable ObjectSE acknowledgment, @Nullable ObjectSE consumer, @Nullable TypeSE type) インターフェースからコピーされた説明:RecordMessageConverterConsumerRecordをMessageに変換します。- 次で指定:
- インターフェース
RecordMessageConverterのtoMessage - パラメーター:
record- レコード。acknowledgment- the acknowledgment (can be Acknowledgment or ShareAcknowledgment).consumer- the consumer (can be Consumer or ShareConsumer).type- 必要なペイロード型。- 戻り値:
- メッセージ。
fromMessage
public org.apache.kafka.clients.producer.ProducerRecord<?,?> fromMessage(Message<?> messageArg, @Nullable StringSE defaultTopic) インターフェースからコピーされた説明:RecordMessageConverterメッセージをプロデューサーレコードに変換します。- 次で指定:
- インターフェース
RecordMessageConverterのfromMessage - パラメーター:
messageArg- メッセージ。defaultTopic- ヘッダーが見つからない場合に使用するデフォルトのトピック。- 戻り値:
- プロデューサーの記録。
initialRecordHeaders
サブクラスは、マップされる前に追加のヘッダーを設定できます。- パラメーター:
message- メッセージ。- 戻り値:
- ヘッダー
- 導入:
- 2.1
convertPayload
extractAndConvertValue
protected ObjectSE extractAndConvertValue(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, @Nullable TypeSE type) サブクラスは値を変換できます。デフォルトでは、変換できるSmartMessageConverterがない限り、Kafka によって提供されるものとして返されます。- パラメーター:
record- レコード。type- 必要な型。- 戻り値:
- 値。