0

コンテキストとして、Python ワーカー プロセスを kafka (0.9.0) ベースのアーキテクチャに移行しようとしていますが、コンシューマ スレッドに関するパーティションの制限について混乱しています。パーティションに複数のコンシューマーがあると、同じパーティションの他のスレッドが現在のスレッドが終了するまで待機することになりますか?

4

1 に答える 1

1

実際、Kafka 0.9 についてはよくわかりません。まだ新しい設計を徹底的に調べる必要はありませんでしたが、私の知る限り、これは v8 では不可能でした。
低レベルのコンシューマでは確かに不可能でしたが、高レベルのコンシューマでパーティションよりも多くのスレッドを割り当てると、パーティションごとに常に 1 つのスレッドしかアクティブにならないと思います。これが、Kafka での並列処理がパーティションの数 (トピックに対して動的に増やすことができる) によって決定されると言う理由です。

考えてみれば、消費するスレッド間でメッセージ レベルの調整が必要になり、パフォーマンスに悪影響を及ぼします。v0.8 のコンシューマー グループは、単一のパーティションで複数のスレッドを調整するのではなく、スレッド -> パーティションの割り当てを Kafka の責任にするために使用されました。

さて、これは 0.9 で変更された可能性がありますが、私はそれを非常に疑っています.

[編集] あなたの質問をもう一度読みましたが、あなたの質問を正しく理解できたと思います。つまり、パーティションごとに複数のコンシューマー (コンシューマー スレッドではない) を持つことは通常のこと (それぞれに独自のオフセットがあります) であるため、スレッドとパーティションの関係について質問していると思いました。

于 2016-02-21T07:07:15.217 に答える