kafkaは指定した位置からどのようにして消費しますか
Kafkaでは、オフセットを設定することで、消費位置を指定できます。指定位置から消費を実現するには2つの方法があります。
- 使用消费者组(Consumer Group)和offset保存的方式:
- コンシューマーグループを作成する際に、オフセットの保存方法を、自動管理(auto.offset.resetをearliestまたはlatestに設定)または手動管理(auto.offset.resetをnoneに設定)に指定することができます。
- オフセットを手動管理する際は、シークメソッドでコンシューマのオフセットを設定することでコンシューマが消費を開始する位置を指定できます。
- 特定のパーティションとオフセットでコンシュームする:
- コンシューマの作成時には、消費するパーティションと開始オフセットを指定し、指定された位置から直接消費を開始することができます。
- assign()メソッドを使用して手動で消費するパーティションとオフセットを割り当てる(例:consumer.assign(Arrays.asList(new TopicPartition(“topicName”, 0)));)、consumer.seek(new TopicPartition(“topicName”, 0), offset);
なお、配信中に新たなお知らせが追加された場合には、それらの新たなお知らせを飛ばすことなく、指定した位置から配信を続けます。