御無沙汰してます… :’(
ちょっとヒントを提供できそうな話題が上がったのでレスします。
Quote from: kmikage at Jul 08, 2009, 08:04 PM
ただ、現状MODxそのものがあまり大規模運用に向けた作りをしていないので、
ひょっとするとインフラ・ミドルウェアで吸収し切れないボトルネックが発生する可能性もありますね。
先月の勉強会で少し話をしたと思いますが、modxでもWeb複数台+DB1台という構成はできます。
単純に個々のmodxが同じDBを使うように設定するだけです。
が、それだけだといくつか問題がでます。
・キャッシュのクリア
DBのデータが変更された時に各Webサーバのキャッシュをクリアさせる必要があります。
やり方はいくつかありますが、こんな感じとか↓
DBにキャッシュクリア管理用のテーブルを作成し、キャッシュクリア時のイベントでフラグを立てるようにします。
各Webサーバはユーザからのアクセスがあるたびにそのテーブルのフラグを確認し、フラグが立ってればキャッシュクリアを行いフラグを落とします。
キャッシュクリア時はそのまま同様のページにリダイレクトさせるといいかもですが、POSTだった場合はちょっと考える必要がありそうです。
・/assets/imagesや/assets/flashとか
TinyMCE等で任意に画像がアップできるので、NFSで共有を図るか、rsync等で同期を考える必要があります。
他にもあったような気がしたのですが…すいません、また思い出したら追記します。
あとDBの冗長化に関しては課題が多そうです。
kmikageさんが言われるようにselectだけ別サーバに向けるような機能がないのと、modxがトランザクション機能を全くサポートしてない事です。
とりあえずselectに関してはDBAPIの$modx->db->select()だけ改造すればそれなりに分散しそうですが、selectでも$modx->db->query()使ってるところもあったりするんですよね :’(
大規模=同時アクセスが大量に発生するという事なので作りたいサイト次第でトランザクションができないのはきついと思います。
(読み専用のサイトならそんなに問題にはならないと思いますが)
御参考までに~。