この記事では、主に、次のように、Guava RatelimiterのJavaプログラミングの関連コンテンツを研究しています。
トークンバケットアルゴリズム
シナリオ1トラフィック監督のアプリケーション
コンセンサートアクセス率(CAR)は、交通監督のために一般的に使用されるテクノロジーの1つです。ポートインレットと出口方向に適用でき、一般に入口方向に適用されます。その監督の原則を図1に示します。
a。トークンを特定の速度でトークンバケットに置く
b。プリセットのマッチングルールに従って、最初にパケットを分類します。一致するルールを満たさないメッセージは、トークンバケットで処理する必要はなく、直接送信されます。
c。一致するルールを満たすパケットの場合、トークンバケットを処理する必要があります。バケツに十分なトークンがある場合、メッセージを送信し続けることができ、トークンバケットのトークンの数は、メッセージの長さに応じて減少します。
d。トークンバケットにトークンが不十分な場合、メッセージは送信されません。メッセージは、新しいトークンがバケットに生成されるまでのみ送信できます。これにより、パケットのトラフィックがトークン生成の速度以下に制限され、トラフィックを制限する目的を達成することができます。
2番目のシナリオ:フロー制御、アプリケーションフィールドの過負荷保護に使用されます。
使用例:
public class ratelimitertest {public static void main(string [] args){final ratelimiter ratelimiter = ratelimiter.create(2.0); for(int i = 0; i <100; i ++){ratelimiter.acquire(); // 1秒あたり2回System.out.println(i)を印刷します。 }}}要約します
上記は、JavaプログラミングGuava Ratelimiterインスタンスの分析に関するこの記事のすべての内容です。誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!