問題タブ [rate-limiting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3152 参照

algorithm - 期間ごとのイベント数を制限する

期間deltaT中に許可されるイベント数 nを制限する必要があります。私が考えることができる任意のアプローチ、スペースはO(m)です。ここで、mはdeltaTごとに送信されるイベント要求の最大数、またはO(deltaT/r)です。ここで、rは許容される解像度です。

編集: deltaT は、タイムスタンプに相対的なスライド時間ウィンドウです。

例: イベントのタイムスタンプの循環バッファーを保持します。イベント時にt-deltaTより前のすべてのタイムスタンプを切り取ります。タイムスタンプの数がnを超える場合、イベントを拒否します。タイムスタンプをバッファに追加します。

または、解像度rの現在に対する時間でインデックス付けされたサイズdeltaT/rの整数の循環バケット バッファを初期化します。ポインタiを維持します。イベントが発生すると、最後のイベントからの時間iをrで割った値だけ増やします。元のiと新しいiの間のバッファーをゼロにします。iでインクリメントします。盗聴者の合計がnを超える場合は拒否します。

より良い方法は何ですか?


上記の 2 番目の提案を 1 秒の固定デルタ Tと 10 ミリ秒の固定解像度でc# に実装しました。

0 投票する
4 に答える
2614 参照

java - JavaアプリケーションでWebサービスの使用を制限するにはどうすればよいですか?

いくつかのWebサービスを実装するJavaサーバーアプリケーションがあるとします。また、アプリケーションユーザーを認証できるとします。

ここで、ユーザーごとにサービスの使用にいくつかの制限を追加したいと思います。たとえば、レート制限(1秒あたりのリクエスト数)、最大リクエストサイズなどです。

それを行うための「すぐに使える」ライブラリはJavaにありますか?

0 投票する
3 に答える
9834 参照

itunes-store - iTunes 検索 API レート制限

iTunes Search API を使用してアプリ関連の情報を取得する予定です - http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

API の使用に事前定義されたレート/スロットル制限があるかどうかを知りたいです。ドキュメント/スタック/Googleでこれに関連する情報を見つけることができませんでした。

誰もこれに関する情報を持っていますか?

0 投票する
1 に答える
1498 参照

twitter - Twitter OAuth を使用してトレンドの API 呼び出しを認証する

私は、ユーザーが都市または国のトップ 10 の Twitter トレンドを検索できる Web サイトに取り組んでいます。最初は Twitter の Rest API だけに頼っていましたが、多くのレート制限の問題がありました (学校では、レート制限を使用するよりも早くなくなります)。API 呼び出しを認証すると、この問題により適切に対処できることがわかっています (認証された API 呼び出しは、認証ユーザーの制限に対して課金されますが、認証されていない API 呼び出しは、呼び出し IP アドレスの割り当てから差し引かれます)。

@abraham の PHP ライブラリ ( https://github.com/abraham/twitteroauth ) を実装しましたが、残念ながら API 呼び出しが認証されていません。@abraham の PHP ライブラリを実装したことはわかっています。これは、ユーザー情報が最後に出力されるためです。その下に Twitter トレンド検索がありますが、API 呼び出しが認証されていません。これを修正する方法がわかりません。助けていただければ幸いです。

これは、国別の上位 10 のトレンドを取得するために使用するものです。

次に、それを @abraham の html.inc ファイルに追加し (レート制限のステータスを確認するためのいくつかの php と共に)、html.inc を index.php に含めます。

@abraham の index.php ファイルには呼び出しの例がいくつかあります。私の呼び出しはこのようには見えないので、おそらくそれが認証されていない理由だと思います。

API 呼び出しが認証されるように、何を修正する必要があるかを教えてください。

10-21 を更新

認証された API 呼び出しを行うには、次のようなコードを含める必要があると思います。

それは私の問題を解決しませんでしたが、おそらく正しい方向に進んでいますか?

0 投票する
1 に答える
182 参照

facebook - ブロックされずに Facebook API に多くのリクエストを行う方法はありますか?

多くの Facebook アカウントの情報 (データ、写真、友達) を一元化する Web サービスを作りたいという要望がありました。問題は、短時間で大量のリクエストを受信できることです。そのため、Facebook のすべての情報をいくつかのリクエストで効率的に取得する方法が必要です。そうしないと、ブロックされてしまいます。

同じクエリで多くのユーザーに関する情報を要求できると思われる FQL について読みました。それが本当なら、完璧です。しかし、FQL の制限に関する詳細な情報は見つかりませんでした。だから私は、FQLが私の問題をすべて解決してくれると考えて、この需要の実行可能性を確認することを恐れています.

問題を解決する良い方法ですか?そうでない場合、何ができるでしょうか?

0 投票する
10 に答える
21177 参照

redis - Redis を使用してレート制限を実装する方法

INCRおよびを使用しEXPIREてレート制限を実装します。たとえば、1 分あたり 5 リクエストです。

ただし、最後の 2 分間に 5 つの要求を送信し、2 分間の最初の 1 秒間にさらに 5 つの要求を送信できます。つまり、2 秒間に 10 の要求です。

この問題はどのように回避できますか?


更新: このリストの実装を思いつきました。これは良い方法ですか?

0 投票する
3 に答える
2726 参照

php - リクエスト限定の API 呼び出しを管理する方法

IP ごとに 10 秒で 30 リクエストという新しいリクエスト制限を持つ tmdb API を使用しています。過去 10 秒あたりのリクエスト数を保持するテーブルを MySQL に持つことで、これらの呼び出しを追跡できますが、異なる IP アドレスを使用してこれを達成するにはどうすればよいでしょうか?

私のアプリの仕組みは次のとおりです。

  1. デスクトップ アプリからアプリケーション サーバーに対して要求が行われます。次に、サーバー側の php が検索を行い、データを返します。

  2. 次に、デスクトップ アプリはアプリ サーバーに対して別の呼び出しを行い、次に tmdb (4-7) および他の API に対して複数の API 呼び出しを行います。

場合によっては、数件から数千件の検索要求が発生する可能性があります。API呼び出しを追跡して遅延させて制限を下回る最善の方法は何ですか?

0 投票する
1 に答える
9651 参照

algorithm - 分散レート制限アルゴリズム

分散レート制限アルゴリズムを実装する必要がある価格設定プラットフォームに取り組んでいます。x個のサービスを提供するk 個のゲートウェイがあります。任意のゲートウェイで任意のサービスを提供できます (ロード バランサー経由)。顧客がサービスに対して 1 秒あたりのコール数を購入すると、そのコールは任意のゲートウェイを介してルーティングされる可能性があります。では、顧客の通話を制限するために、すべてのゲートウェイの通話カウンターを更新する優れたアルゴリズムを知っている人はいますか?

このアルゴリズムに関する 2 つの重要な指標は、ネットワークのオーバーヘッドと、受け入れられた呼び出しの数とレート制限の間の偏差です。

ありがとう!

編集 「よく知られている」アルゴリズムがあるかどうか知りたいだけです。

0 投票する
1 に答える
346 参照

php - Magento CMS エラーの Twitter API

Magento で構築したサイトのサイドバーに Twitter フィードがあり、次の PHP が Twitter API を呼び出し、フィードをリストとして投稿します。

残念ながら、system.log に次のようなエラーが表示されます。

2012-12-04T01:02:33+00:00 ERR (3): 警告: file_get_contents(https://api.twitter.com/1/statuses/user_timeline.xml?screen_name=ecpublish&count=4) [function.file -get-contents]: ストリームを開くことができませんでした: HTTP 要求が失敗しました! /clientdata/apache-www/e/c/ecpublishing.com.au/www/app/design/frontend/default/ecp/template/page/sidebar/twitter.phtml 行 9 の HTTP/1.0 400 Bad Request

urlencode()、cURL、PHP バージョンのチェック、fopen ステータスなどの修正を試みましたが、何も解決しません。Twitter のレート制限が原因である可能性があると感じています: https://dev.twitter.com/docs/rate-limitingしかし、これがなぜなのかはわかりません。

私のサイトは: http://ecpublishing.com.au