私が知っているように、自分のトピックの中にキー付きメッセージを使用すると、kafkaパーティショナーは常に同じキーを持つメッセージを同じパーティションに送ります。その特定のメッセージの集合。パーティションの割り当て、注文、パーティション番号のサイズ変更に関するメッセージ
また、デフォルトパーティショナーは、最初に、その特定のトピックで使用可能なパーティションの数に基づいて、メッセージを送信するパーティションを決定します。 messageKeyHash%numberOfPartitionsのようなものです。
私の質問は、キーを持って、私はLETの5パーティションでトピックを持っている場合は、されており、3メッセージを送信し、それらは全てパーティション0に割り当てられている、と後で私が増加そのトピックのパーティション番号が5から5 + xまでのである場合、キーAを持つメッセージはパーティション0に移動するはずか、パーティションAはキーAを持つメッセージを別のパーティションに送信する可能性があります。
言い換えれば、トピックのパーティション数を増やすと、実行時にそのトピックの特定のキーに対する注文保証が失われますか?
はいの場合、どうすればこの問題を解決できますか?注文保証が必要な場合は、常にオーバーパーティション化する必要がありますか?私はカスタムパーティショナーを実装すべきですか(私は方法を見ません)?
あなたはパーティションの数を増やす場合は、キーAとのメッセージがもはやパーティション0に別のパーティションを移動していない可能性があるため、あなたが