クラス MessagingMessageConverter
java.lang.ObjectSE
org.springframework.kafka.support.converter.MessagingMessageConverter
- 実装されたすべてのインターフェース:
MessageConverter
,RecordMessageConverter
- 既知の直属サブクラス
JsonMessageConverter
,ProjectingMessageConverter
個々のメッセージを受信するメッセージリスナーのメッセージング
MessageConverter
実装。 返されるメッセージに ConsumerRecord
に基づいて KafkaHeaders
を移入します。
- 作成者:
- Marius Bogoevici, Gary Russell, Dariusz Szablinski, Biju Kunjummen
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターコンストラクター説明KafkaHeaders.PARTITION
を使用してターゲットパーティションを決定するインスタンスを構築します。MessagingMessageConverter
(FunctionSE<Message<?>, IntegerSE> partitionProvider) 提供されたパーティションプロバイダー関数を使用するインスタンスを構築します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSE
convertPayload
(Message<?> message) サブクラスはペイロードを変換できます。デフォルトでは、変更されずに Kafka に送信されます。protected ObjectSE
extractAndConvertValue
(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, TypeSE type) サブクラスは値を変換できます。デフォルトでは、変換できるSmartMessageConverter
がない限り、Kafka によって提供されるものとして返されます。org.apache.kafka.clients.producer.ProducerRecord<?,
?> fromMessage
(Message<?> messageArg, StringSE defaultTopic) メッセージをプロデューサーレコードに変換します。protected MessageConverter
protected org.apache.kafka.common.header.Headers
initialRecordHeaders
(Message<?> message) サブクラスは、マップされる前に追加のヘッダーを設定できます。void
setGenerateMessageId
(boolean generateMessageId) 作成されたメッセージに対してMessage
ids
を生成します。void
setGenerateTimestamp
(boolean generateTimestamp) 生成されたメッセージに対してtimestamp
を生成します。void
setHeaderMapper
(KafkaHeaderMapper headerMapper) ヘッダーマッパーを設定してヘッダーをマップします。void
setMessagingConverter
(SmartMessageConverter messagingConverter) spring-messagingSmartMessageConverter
を設定して、レコード値を目的の型に変換します。void
setRawRecordHeader
(boolean rawRecordHeader) true に設定すると、生のConsumerRecord
がヘッダーKafkaHeaders.RAW_DATA
として追加されます。Message<?>
toMessage
(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, 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, Acknowledgment, Consumer, 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, Acknowledgment acknowledgment, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, TypeSE type) インターフェースからコピーされた説明:RecordMessageConverter
ConsumerRecord
をMessage
に変換します。- 次で指定:
- インターフェース
RecordMessageConverter
のtoMessage
- パラメーター:
record
- レコード。acknowledgment
- 承認。consumer
- コンシューマーtype
- 必要なペイロード型。- 戻り値:
- メッセージ。
fromMessage
public org.apache.kafka.clients.producer.ProducerRecord<?,?> fromMessage(Message<?> messageArg, StringSE defaultTopic) インターフェースからコピーされた説明:RecordMessageConverter
メッセージをプロデューサーレコードに変換します。- 次で指定:
- インターフェース
RecordMessageConverter
のfromMessage
- パラメーター:
messageArg
- メッセージ。defaultTopic
- ヘッダーが見つからない場合に使用するデフォルトのトピック。- 戻り値:
- プロデューサーの記録。
initialRecordHeaders
サブクラスは、マップされる前に追加のヘッダーを設定できます。- パラメーター:
message
- メッセージ。- 戻り値:
- ヘッダー
- 導入:
- 2.1
convertPayload
サブクラスはペイロードを変換できます。デフォルトでは、変更されずに Kafka に送信されます。- パラメーター:
message
- メッセージ。- 戻り値:
- ペイロード。
extractAndConvertValue
protected ObjectSE extractAndConvertValue(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?> record, TypeSE type) サブクラスは値を変換できます。デフォルトでは、変換できるSmartMessageConverter
がない限り、Kafka によって提供されるものとして返されます。- パラメーター:
record
- レコード。type
- 必要な型。- 戻り値:
- 値。