私はKafkaを初めて使用しますが、Kafka設定の意味を本当に理解していません。誰もが私にもっと分かりやすい説明をすることができます!
ここに私のコードがあります:
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)
)
私のコードではどういう意味ですか?
意味を説明しますが、読むことを強くお勧めします Kafka Web Site Configuration
"bootstrap.servers" -> "master:9092,slave1:9092"
基本的にKafkaクラスター構成:IPおよびポート。
"key.deserializer" -> classOf[StringDeserializer]
"value.deserializer" -> classOf[StringDeserializer]
このSO 答えは目的を説明します。
"group.id" -> "GROUP_2017"
コンシューマプロセスはgroupIdに属します。 groupIdは複数のコンシューマーを持つことができ、Kafkaは1つのコンシューマープロセスのみを1つのパーティションに割り当てます(データを消費するため)。コンシューマの数が利用可能なパーティションよりも大きい場合、一部のプロセスはアイドル状態になります。
"enable.auto.commit" -> (true: Java.lang.Boolean)
そのフラグがtrueである場合、Kafkaは、Zookeeperを使用してKafkaから持ってきたメッセージをコミットし、最後に読み取った「オフセット」を保持できます。このアプローチは、持ち込んだレコードが(コードで記述したロジックを使用して)正しく処理されたことを保証するものではないため、実動システム用のより堅牢なソリューションが必要な場合には最適ではありません。このフラグがfalseの場合、Kafkaは最後に読み込まれたオフセットを認識しないため、プロセスを再起動すると、次のフラグの値に応じて 'earliest'または 'latest'オフセットの読み取りを開始します( auto.offset.reset)。最後に、 このClouderaの記事 は、オフセットを適切な方法で管理する方法を詳細に説明しています。
"auto.offset.reset" -> "latest"
このフラグは、[コミット]がまだない場合にオフセットの読み取りを開始する場所をKafkaに指示します。言い換えれば、Zookeeperでオフセットをまだ保持していない場合(手動で、またはenable.auto.commitフラグを使用して)、「最も早い」または「最新の」から開始します。
Apache KafkaのWebサイト https://kafka.Apache.org/documentation.html#newconsumerconfigs に記載されているコンシューマ構成パラメータの完全なセット