public class KafkaItemReader<K,V> extends AbstractItemStreamItemReader<V>
Apache Kafka の ItemReader
実装。KafkaConsumer
を使用して、指定されたトピックからデータを読み取ります。同じトピック内の複数のパーティションをこのリーダーに割り当てることができます。
KafkaConsumer
はスレッドセーフではないため、このリーダーはスレッドセーフではありません。
コンストラクターと説明 |
---|
KafkaItemReader(java.util.Properties consumerProperties, java.lang.String topicName, java.lang.Integer... partitions) 新しい KafkaItemReader を作成します。 |
KafkaItemReader(java.util.Properties consumerProperties, java.lang.String topicName, java.util.List<java.lang.Integer> partitions) 新しい KafkaItemReader を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | close() ノーオペレーション。 |
boolean | isSaveState() 再起動のために内部状態を保存するかどうかを決定するフラグ。 |
void | open(ExecutionContext executionContext) ノーオペレーション。 |
V | read() 入力データの一部を読み取り、次のデータに進みます。 |
void | setPartitionOffsets(java.util.Map<org.apache.kafka.common.TopicPartition,java.lang.Long> partitionOffsets) パーティションオフセット用の Setter。 |
void | setPollTimeout(java.time.Duration pollTimeout) コンシューマートピックのポーリング期間のタイムアウトを設定します。 |
void | setSaveState(boolean saveState) ExecutionContext の内部データを保存するかどうかを決定するフラグを設定します。 |
void | update(ExecutionContext executionContext) 空の ExecutionContext を返します。 |
getExecutionContextKey, setExecutionContextName, setName
public KafkaItemReader(java.util.Properties consumerProperties, java.lang.String topicName, java.lang.Integer... partitions)
KafkaItemReader
を作成します。consumerProperties
には次のキーが含まれている必要があります: 'bootstrap.servers'、'group.id'、'key.deserializer' および 'value.deserializer'
consumerProperties
- コンシューマーの特性 topicName
- データを読み取るトピックの名前 partitions
- データを読み取るパーティションのリスト public KafkaItemReader(java.util.Properties consumerProperties, java.lang.String topicName, java.util.List<java.lang.Integer> partitions)
KafkaItemReader
を作成します。consumerProperties
には次のキーが含まれている必要があります: 'bootstrap.servers'、'group.id'、'key.deserializer' および 'value.deserializer'
consumerProperties
- コンシューマーの特性 topicName
- データを読み取るトピックの名前 partitions
- データを読み取るパーティションのリスト public void setPollTimeout(java.time.Duration pollTimeout)
pollTimeout
- コンシューマー投票操作用 public void setSaveState(boolean saveState)
ExecutionContext
の内部データを保存するかどうかを決定するフラグを設定します。このストリームから状態を保存したくない場合にのみ、これを false に切り替えて、再起動可能にする必要はありません。リーダーが並行環境で使用されている場合は、常に false に設定します。saveState
- フラグ値(デフォルトは true)。public boolean isSaveState()
public void setPartitionOffsets(java.util.Map<org.apache.kafka.common.TopicPartition,java.lang.Long> partitionOffsets)
再起動の場合、実行コンテキストに保存されているオフセットが優先されます。
partitionOffsets
- 各パーティションの開始オフセットのマッピング public void open(ExecutionContext executionContext)
ItemStreamSupport
ItemStream
の open
ItemStreamSupport
の open
executionContext
- 現在のステップの ExecutionContext
再起動時のステップの最後の実行からの executionContext になります。ItemStream.open(ExecutionContext)
@Nullable public V read()
ItemReader
null
を返す必要があります。トランザクション設定では、最初の呼び出しがロールバックされたトランザクション内にあった場合、呼び出し元は連続した呼び出し(またはそれ以外)から同じアイテムを 2 回取得する場合があります。null
public void update(ExecutionContext executionContext)
ItemStreamSupport
ExecutionContext
を返します。ItemStream
の update
ItemStreamSupport
の update
executionContext
- 更新される ItemStream.update(ExecutionContext)
public void close()
ItemStreamSupport
ItemStream
の close
ItemStreamSupport
の close
ItemStream.close()