librdkafka を使用した GoLang Kafka プロデューサーについていくつか質問がありました。これらは、debug: all を設定したときにプロデューサー ログに表示されるログに基づいています。プロデューサーは、バッチしきい値が再キャッシュされるか、linger.ms が渡されると、メッセージ セットの構築にある程度の時間を費やします。ただし、ほとんどの場合、メッセージはパーティション キューから xmit キューに移動されます。私はそれに関するドキュメントを取得しようとしていましたが、あまり見つけることができなかったので、スタックに関するヘルプが得られるかどうかを確認したいと思いました. 私の質問は次のとおりです-
a) アプリケーションは、パーティション固有のキューへの書き込み呼び出しを生成しますか?
b) パーティションごとに 1 つの xmit キューと 1 つのパーティション キューがありますか?
c) パーティション キューから xmit キューへの転送のトリガーは何ですか? また、なぜ 2 つのキューが必要なのですか?
d) Kafka プロデューサーがパーティションのメッセージセットを作成しているとき - パーティションのすべての操作をブロックしますか? (メッセージをパーティション キューから xmit キューに移動するようなもの)? 要するに、メッセージ セットがパーティション用に作成されているときに、新しいメッセージが xmit キューに忍び込む可能性はありますか? ブロックされていますか?
e) メッセージセットを作成するためにいくつのスレッドが機能しますか? プロデューサーごとに 1 つですか、それともパーティションごとに 1 つですか?