私は、次のアーキテクチャでウェブサイトを持っている:フォールトトレラントのfile_get_contents
End user ---> Server A (PHP) ---> Server B (ASP.NET & Database)
web file_get_contents
browser
サーバAは、主に静的なHTMLページを提供する、シンプルなWebサーバです。ただし、一部のコンテンツは動的で、このコンテンツはサーバーBから取得されます。例:
someDynamicPageOnServerA.php:
<html>
...static stuff...
<?php echo file_get_contents("http://serverB/somePage.aspx?someParameter"); ?>
...more static stuff...
</html>
これは問題なく動作します。ただし、サーバーBが停止している(メンテナンス、予期しないクラッシュなど)と、サーバーAの動的ページは失敗します。したがって、私は
- キャッシュ最後のfile_get_contentsの結果と
- ショーのfile_get_contentsがタイムアウトした場合、この結果をしたいと思います。
ここで、このようなものを実装するのは難しいことではありません。しかし、これは一般的なシナリオであると思われ、ホイールの再発明を避けたいと思います。このようなシナリオに役立つPHPライブラリやビルトイン機能はありますか?
何も組み込まれていませんが、実行するのは簡単です。スクリプトで定期的にそのファイルを取得してローカルコピーに保存し、代わりにそのローカルコピーを提供します。 –
@MarcB:いい選択肢です。当面は、データベースの変更を「できるだけ早く」(「次の同期間隔で」ではなく)ウェブで利用できるようにしたいので、これを避けたいと思います。 – Heinzi
次に、リモートの信頼できないサーバーが、変更が行われるとすぐに更新されたデータをプッシュできる「ディスプレイ」サーバー上に単純な受信者サービスを設定します。受信者はファイルをローカルキャッシュコピーに書き出す処理を行います。リモートサーバーが消滅した場合は、旧式の古いコピーを提供するだけです。そうしないと、変更が行われるたびに新しいコピーが作成されます。 –