コールセンターの受注システムに対してこのAPIを提供しており、オンラインオーダーと通信します。 しかし、多くのリクエストとレスポンスは同じ、多かれ少なかれ静的ですが、APIサーバはそれらを生成しますが、静的ファイルを提供するだけではありません。XMLレスポンスのキャッシュ
XMLレスポンスをキャッシュするための最良の方法として何をお勧めしますか?私はZend_Cacheを見ました。しかし、私が理解していることから、私はそれがクライアント/セッションベースだと思います、私はすべてのクライアントが同じキャッシュを利用することを望みます。
また、すべてのページビューは、バスケットのコンテンツの価格を問わず、どのキャッシングを提案していますか。私はZend_Cacheが多分ここに遊びに来るかもしれないと思う!
私が必要とするのは、APIサーバーの負荷を取り除くことです。そのため、価格要求や、リクエストごとに変更されるその他のリクエストを処理するためのリソースが増えます。
更新:13 2010年12月10.45
要求タイミング
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /ccstatus [0.054742097854614]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.063634157180786]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062693119049072]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062756061553955]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storestatus [0.062740087509155]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /storelocations [0.065214872360229]
2010-12-10T14:43:46+01:00 DEBUG (7): XML GET /coupons [0.070861101150513]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /packagedeals [0.51115489006042]
2010-12-10T14:43:47+01:00 DEBUG (7): XML POST /price [0.065691947937012]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /pizzas [0.10685706138611]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /bevtypes [0.059874057769775]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /bevsizes [0.056848049163818]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /items [0.070401191711426]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062546014785767]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.063254117965698]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062647104263306]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062632083892822]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062486886978149]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /items [0.059072017669678]
2010-12-10T14:43:47+01:00 DEBUG (7): XML GET /storestatus [0.062618970870972]
2010-12-10T14:43:48+01:00 DEBUG (7): XML POST /price [0.063409805297852]
これは、サイドオーダーのページを示す、単一ページビューのリクエストで、バスケットは、2つの項目が含まれています。
これらの時間に基づいて、私はデータをキャッシュすることでかなりの違いを得るだろうと思いますか?これらの時間は無負荷であるため、高負荷ではキャッシングが便利になる可能性があります。
素晴らしい考え:)価格要求について、私はセッションで最後の応答を保存すると思っていた、バスケットの内容しかし、おそらく正しいでしょう。多かれ少なかれ静的な要求をファイルに格納することができます。私は最初の投稿を更新しました。各リクエストがAPIから取得するためのログのリストを更新しました。 – Phliplip
バスケットが変更されていない場合、新しいpricerequestを実行する必要はありません。良いキャッチ。 ;-) –
私はZend_Cacheファイルとcronジョブを使ってキャッシュを更新したので、あなたの答えを受け入れました。私たちは直ちにオンライン注文の負荷時間が50%減少したことを見ました:)科学的方法はありません。ページが読み込まれるまで数秒でリンクをクリックするだけです。 – Phliplip