10

最近の質問で、誰かがFirebase の価格設定ドキュメントに次のように記載されていると指摘しました。

REST API リクエストは接続制限にカウントされません

私は、このステートメントが何を意味しているのかを理解 (および評価) しています。REST API に対する GET、PUT、POST、および DELETE 要求は、通常、バックアップ用のデータのダウンロードなど、データに対する非リアルタイム操作に使用されます。または一括計算。これらは通常、頻度が低く、比較的短期間の操作であり、一般に、リアルタイム データ接続の数を小さくする必要があります。

しかし、Firebase の REST ストリーミング APIを見ると、それは異なります。残りの REST API とは異なり、ストリーミングは明らかにリアルタイム データ接続を対象としています。

上記のドキュメントによると、これらの接続は接続制限にカウントされません。しかし、Google グループに関する Firebase 開発者のコ​​メントによると:

同時 [接続] は、リアルタイム クライアントまたはストリーミングされた RESTです

私が強調した部分は、ストリーミング REST API を使用するクライアントが接続制限に対してカウントされることを示唆しているようです。

テストのために、Firebase REST ストリーミング API を使用してノードを監視する小さな C# クライアントを作成しました。

var url = "https://<my>.firebaseio.com/clock/.json";

var client = new WebClient();
client.Headers["Accept"] = "text/event-stream";
using (var stream = client.OpenRead(url)) {
    using (var reader = new StreamReader(stream)) {
        string line = null;
        while (null != (line = reader.ReadLine())) {
            (DateTime.Now.ToShortTimeString() + line).Dump();
        }
    }
}

このプログラムを開始してから約 15 分後に、Firebase ダッシュボードの同時接続数が実際に 1 増加しました。2 つ目のインスタンスを実行すると、ダッシュボードの同時接続数が再び増加しました。

したがって、このテストは、Google グループで示唆されたことを確認しているようです。REST ストリーミング クライアントは同時接続としてカウントされます。誰かがこれを確認したり、私のテストの欠陥を見つけたりできますか?

4

1 に答える 1

7

ここでのあなたの仮定は正しいです。REST API を介したストリーミング呼び出しは、論理的に必要な同時実行数に対してカウントされます (つまり、ソケット接続を開いたままにし、追加の負荷を作成しています)。REST API に対する非ストリーミング コールは、同時接続としてカウントされません。

価格設定ページを見て、テキストをもう少し明確にすることができるかどうかを確認します.

于 2015-01-30T18:27:07.910 に答える