REST APIキャッシング、逆プロキシまたはMemcache(D)を使用する必要がありますか?

StackOverflow https://stackoverflow.com/questions/3636116

質問

REST APIがあり、インデックスのJSON応答(get /foo)と読み取りアクション(get /foo /1)をキャッシュして、パフォーマンスを大幅に向上させたいと思います。リソースに投稿または掲載がある場合、インデックスのキャッシュエントリと読み取り結果を有効期限にする必要があるため、古いコンテンツは提供されません。

これは、イカやワニスのような逆プロキシで最もよく行われるシナリオですか、それともmemcache(d)を選択しますか?

役に立ちましたか?

解決

HTTPレイヤーにある逆プロキシを使用する トランスペアレント. 。つまり、ワイヤーで何が起こっているのかを見ることができることを意味します。悪いことは、これらのサポートのほとんどです 認証された応答をキャッシュします, 、そのため、リソースが認証を必要とする場合、効率は0に低下する場合があります。逆プロキシも通常、リソースaを自動的に期限切れにしません(/foo)この完全に無関係なリソースB(/foo/1)変更されます。それはあなたがあなたのソリューションに何らかの形で追加する必要がある正しい動作です。

これらの問題は両方とも、透明性要件がないため、memcachedを使用する場合に解決できます。

他のヒント

キャッシュロジックを伴わずにサービスを実装(およびテスト)し、キャッシュを別のレイヤーとして追加できるため、ワニスのような逆プロキシを使用します。 VarnishがGet Requestのために古い結果を提供しながらサービスをアップグレード/再起動することができます(可用性に最適)、特定のGET/POSTアクションに基づいて、既存のキャッシュ結果を無効にする(パージ)するために、ワニスのルールを簡単にセットアップできます。

分散メモリを使用したい場合は、Memcachedが適切なソリューションです。 https://github.com/cpatni/middleman キャッシュにMemcachedを使用する逆プロキシです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top