嵐 v1.2.2 各 16 コアの 6 ノード クラスターの環境があります。12 個のパーティションを持つ kafka トピックからメッセージを読み取るサンプル トポロジをデプロイしました。
構成
保留中のスパウトの最大数は 15 です。 トポロジ メッセージのタイムアウトは 300 秒です トポロジ Acker executor は 2 (ワーカーの数に等しい) です。 Worker1 -> Bolt-A の 15 のエグゼキュータ (タスクはエグゼキュータの数に等しい) Worker2 -> Bolt-A の 15 のエグゼキュータ (タスクはエグゼキュータの数に等しい) ボルト (A から B から C) には、それぞれ 2 つのワーカーにまたがる 30 のエグゼキューターがあります
保留中の最大スパウトは 15 であるため、そのカフカ トピックに 20 個のメッセージを公開しようとしました。そのため、15 個のメッセージのみがスパウトから取得および発行されるはずでしたが、7 個のメッセージのみが Bolt-A に発行されたことがわかりました。これら 7 つのメッセージが Bolt-B に送信された後、Bolt-A はスパウトから残りのメッセージを受信しました。
したがって、理想的には、bolt-A はスパウトから 15 個のメッセージを取得し、これらの 15 個が確認されると、残りの 5 個のメッセージが取得されるはずです。しかし、7 つのメッセージだけがピックアップされ、8 つのエグゼキュータがアイドル状態で何もしていないことがわかりました。localOrSuffled および Suffled グループ化を試しましたが、常にアイドル状態のエグゼキュータはほとんどありません。利用可能なすべてのエグゼキュータに作業を均等に分散するための提案はありますか?