IPごとのレート制限を行う非常に単純なフィルターを追加したいと思いますが、iptablesで許可されているように、バーストを許可します。
キッチン シンク全体をインストールしたくありません。必要なのは、その機能を実装する 1 つの Filter クラスだけです。
単純な「レート制限するが、短いバーストを許可する」ことを可能にする優れたデータ構造/アルゴリズムは何でしょうか?
たとえば、ユーザーが 1 分間に 'x' 以上の GET / POST を実行しようとした場合に HTTP エラー コードを提供したいと考えていますが、それでも同じユーザーが 'y' まで「バースト」できるようにしたいと考えています (どこで y > x) 彼がバーストキャップに達するまで。
比較のために、 iptablesを使用して同様のレート制限とバーストを構成する方法を次に示します (私の場合はレート制限を設定することではありませんが、私が話していることを示すための単なる例です)。 +TCP SYN パケットのバースト):
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 5