0

Foursquare API を使用して Android アプリを作成しています。テストするには、APIGEE コンソール ( http://www.apigee.com ) を使用します。ここで、STATS/CHECKINSCOUNT の戻り値に奇妙な動作があることに気付きました。

たとえば、この会場呼び出し: https://api.foursquare.com/v2/venues/4bdaaddcffafd13a6b109b85?v=20120321

たまに返ってくる

"stats": {
        "checkinsCount": 8246,
        "usersCount": 2998,
        "tipCount": 12

APIを再度呼び出すと、時々取得します

 "stats": {
        "checkinsCount": 8214,
        "usersCount": 2990,
        "tipCount": 11

他の誰かが前にこれに気づきましたか?

Foursquare には負荷分散の問題があるように思えますか?

私のアプリでは、正しい値を持つことが重要です (これは一種の独占ゲームであり、正しい訪問者数を知ることが重要です...)...

4

1 に答える 1

0

それは奇妙な行動です!

ここ Foursquare では、Mongo をデータベース技術として使用しています。膨大な量のデータが信じられないほどの速さで処理されているため、1 台のマシンで、保存および更新する必要があるすべてのデータの保存と更新を処理することは不可能です。そのため、ご想像のとおり、負荷を複数のマシンに分散する必要があります。分散システムでは必ず起こることですが、最終的にはマシンまたは接続の障害に直面します。

幸いなことに、ここには非常に優れたインフラストラクチャ チームがあり、データベース マシンの稼働と同期を維持することに専念しています。そのため、同期されていない情報が原因で発生する問題は、一時的で短命に終わることは間違いありません (通常、書き込みは数ミリ秒で分散されます)。あなたが見たのはデータベースの問題ではなく、一部のユーザーがアカウントを削除したか、不正行為者としてマークされた可能性もあります。これらはどちらも、会場の訪問者数の正当な統計を減少させる可能性があります.

原因が何であれ、最終的な結果として、私たちの API マシンは正確に正しい値であると信じているものを常に返すので、先に進んでそれを使用する必要がありますが、値が常に厳密であると期待するべきではありません。その瞬間に作成したチェックインを増やしたり、反映したりします。

あなたのゲームをチェックするのを楽しみにしています!

于 2013-07-11T19:52:20.807 に答える