理解カフカは、パーティションの譲渡をストリーム

kambo:

私は2つの話題、3つのパーティションを持つ1と48のものを持っています。

当初、私はデフォルトの譲渡を使用しますが、消費者(kubernetesでポッド)がクラッシュしたとき、私はいくつかの問題を得ました。

何が起こったのは、ポッドが再び来たとき、それは48でトピックから3つのパーティションと0との話題からパーティションを再割り当てということでした。

クラッシュしていなかった2つのポッドは、48個のパーティションを持つトピックから16と32のパーティションが割り当てられてしまいました。

私は、ラウンドロビンのパーティションを使用してこれを修正した譲渡人が、私はkstream-kstreamを使用していますが加わり、そのために私たちは、消費者が同じに割り当てられていることを保証する必要があるため、今私は、パーティションがどのように分配されるかに自信感じることはありません(T1:P0、T2:P0)C2すべてのコンシューマ例えばC1のパーティション(T1:P1、T2:P1)など。

私が考えることの一つは、私は、彼らが再パーティション化されますので、入ってくるイベントをリキーができ、その後、私はこれを保証することができるかもしれないということでしたか?

それとも私が仕事を分割デフォルトは..イム混乱どのように理解していません

ブルーノCadonna:

カフカストリームは、カスタムパーティションの譲渡を使用することはできません。あなた自身を1に設定した場合、それがで上書きされますStreamsPartitionAssignor[1]。パーティションはリバランス中(べたつきの別名)と同じ消費者に再割り当てされている-可能な場合は-これは、ことを確認するために必要とされています。カフカストリームを極力消費者の側での状態の店舗を再利用できるようにするために粘着性が重要です。パーティションが同じ消費者に再割り当てされていない場合は、状態ストアはリバランス後に最初から再作成するには、この消費者のニーズ内で使用されます。

[1] https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java#L989

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224463&siteId=1