2010-12-11 24 views
3

Googleアナリティクスがイベントを追跡するjavascriptからビーコンを送信する方法と同様に、ビーコンデータを収集して最速の時間にクライアントに返す最も効率的な方法は何ですか?アナリティクスビーコンを保存する最も効率的な方法は何ですか?

たとえば、サーバーからビーコンへの呼び出しがある場合、できるだけ早くクライアントサーバーでその呼び出しを行いたいとします。

PHPをフラットファイルに変換しますか? PHPをローカルキューに追加しますか? キューにログを記録し、リモートキューに常時接続を維持するJava Server? カスタムC++サーバー?

これは、1秒あたり1000リクエストのオーダーです。

答えて

1

これには2つの側面があります。

1)クライアントのビーコンコールはできるだけ早く行う必要があります。これは、入ってくるHTTPリクエストが200 OKに応答し、できるだけ早く終了する必要があるため、実際のデータ書き込み自体を行うべきではないと考えられます。バックグラウンドでシェルを実行するか、Gearmanのようなキュー/ジョブのメカニズムを利用して、バックグラウンドで別のプロセスに渡す必要があります。

2)データの書き込み自体は、クライアントの注意を奪ってバックグラウンドスレッドで実行された場合、もう少し時間がかかります。 1秒あたり1000回の書き込みは、同じ瞬間にあまりにも重くから選択されていない行ロックを備えた、現代的なハードウェアのチューニングされたデータベースにとってはうまくいくはずです。しかし、おそらく、これは即時データ記憶のためのkey-value storeの良い使用シナリオになるかもしれません。次に、個別の分析/レポート作成プロセスは、格納されたすべてのデータに対してキー値ストアをオフラインで照会し、処理し、最終的にデータベースにコピーすることができます。

関連する問題