私はこれを念頭に置いています:
各サーバーで: (それらはすべて同じように設定されています)
- MySQLやPostgreSQLなどの無料のデータベース。
- サーブレット ベースの Java アプリケーションをホストするためのTomcat 6.x
- ORM ツールとしてのHibernate 3.x
- ビジネスレイヤー用のSpring 2.5
- プレゼンテーション層用のWicket 1.3.2
サーバーの前にロード バランサーを配置し、プライマリ ロード バランサーがダウンした場合に備えて代替のロード バランサーを配置します。
Terracottaを使用して、サーバー間でセッション情報を複製します。サーバーがダウンした場合、ユーザーは、理想的には何も起こらなかったかのように、別のサーバーで作業を続行できる必要があります。「解決」する必要があるのは (実際にこれをテストしておらず、たとえば、ロード バランサとして何を使用すればよいかがわからないため)、必要なデータベース レプリケーションです。
ユーザーがアプリケーションと対話し、データベースが変更された場合、その変更を他のサーバー マシン上のデータベース サーバーに複製する必要があります。どうすればいいですか?MySQL PostgreSQL などを使用する必要がありますか (予算が限られているため、理想的には無料です)。上記の他のことは賢明に聞こえますか?
明確化: 私は何よりもまず高可用性を実現するためにクラスター化しており、サーバーを追加してそれらすべてを同時に使用できるようにして、高いスケーラビリティーを実現したいと考えています。