2017-07-05 2 views
1

私はKafkaを初めて使っています。私はKafkaの設定の意味を理解していません。ここでKafkaのauto.offset.resetとenable.auto.commitの意味についてはっきりしない

は私のコードです:それは私のコードで

val kafkaParams = Map[String, Object](
    "bootstrap.servers" -> "master:9092,slave1:9092", 
    "key.deserializer" -> classOf[StringDeserializer], 
    "value.deserializer" -> classOf[StringDeserializer], 
    "group.id" -> "GROUP_2017", 
    "auto.offset.reset" -> "latest", //earliest or latest 
    "enable.auto.commit" -> (true: java.lang.Boolean) 
) 

何を意味するのでしょうか?

+0

あなたが読んでいるか書いているKafkaのバージョンに関連するKafkaのドキュメントを読むことをお勧めします。[Here](http://kafka.apache.org/documentation.html)は公式のドキュメントです。コンシューマとプロデューサの設定のセクションには、パラメータの定義があります。 – Jeremy

答えて

0

でのApacheカフカのウェブサイトに記載の消費者の構成パラメータのフルセット基本的にカフカ私はあなたに意味を説明しますが、私は非常にKafka Web Site Configuration

"bootstrap.servers" -> "master:9092,slave1:9092" 

を読むことをお勧めクラスタ構成:IPとポート。

"key.deserializer" -> classOf[StringDeserializer] 
"value.deserializer" -> classOf[StringDeserializer] 

This SO答え説明目的は何ですか?

"group.id" -> "GROUP_2017" 

消費者プロセスはgroupIdに属します。 groupIdは複数のコンシューマーを持つことができ、カフカは1つのパーティションのみに1つのコンシューマープロセスを割り当てます(データ消費用)。コンシューマの数が利用可能なパーティションよりも大きい場合、いくつかのプロセスはアイドル状態になります。

"enable.auto.commit" -> (true: java.lang.Boolean) 

そのフラグがtrueの天気を、その後、カフカが最後の「オフセット」、それが読まれた永続化するために飼育係を使用して、あなたがカフカから持ってきたメッセージをコミットすることができます。この方法は、コードで記述したロジックを使用して、読み込んだレコードが正しく処理されているとは限らないため、運用システムでより堅牢なソリューションを使用する場合には使用するのが最善の方法ではありません。このフラグがfalseの場合、Kafkaは最後に読み込まれたオフセットを知りません。プロセスを再起動すると、次のフラグの値に応じて '最も早い'オフセットまたは '最新のオフセット'の読み込みが開始されます(auto.offset。リセット)。最後に、This Cloudera articleは、オフセットを適切な方法で管理する方法を詳細に説明します。

"auto.offset.reset" -> "latest" 

このフラグは、まだ「コミット」がない場合に、読み込みオフセットの開始位置をKafkaに指示します。 Zookeeperでオフセットを永続化していない場合は、(手動またはenable.auto.commitフラグを使用して)「最古」または「最新」から開始します。

関連する問題