1

私は巨大なアプリケーションに取り組み始めるつもりです。その前に、自分自身を準備したいと思います。

これは世界中で使用されるアプリケーションであり、同時に多数のユーザーが使用します。

  1. つまり、1 つのデータベース サーバーに大きな負荷がかかり、限られた時間内にデータベースに大量の要求/クエリが発生するということです。これはシステムのパフォーマンスに影響しますよね?

  2. データベースサーバーがダウンすると、ウェブサイトの所有者に多大な費用がかかります。

それで、私は何をすべきですか?私が使用できる技術または何かはありますか?複数のデータベースを使用できる場合、どうすればよいですか? すべてのデータベースに同じ情報が含まれますか? diff 間のテーブルを (任意の技術またはツールを使用して) 結合できますか? データベース?または、データベースごとに複数のクエリを実行する必要がありますか?

アプリケーションは次のものになります:jboss、jsp、servlet、mysql

4

1 に答える 1

0

要件がある程度正確に与えられることが常に最善です。たとえば、データベースに同時にアクセスするユーザーが 1,000 人を超えないようにすることは、明確な設計要件です。「多数のユーザーがいるだろう」はあまり役に立ちません。もちろん、Web アプリケーションが受け取るトラフィック量を常に予測できるわけではなく、要件は時間の経過とともに変化することがよくあります。

データベースで書き込みよりもはるかに多くの読み取りが発生する場合、データベースからデータをキャッシュするとパフォーマンスが向上します。これは、あなたが聞きたいかもしれない最近のポッドキャストのトピックでした: http://javaposse.com/java-posse-399-roundup-12-distributed-caching

同期の問題に対処する必要があるため、多数のサーバーにデータベースを分散させるのは複雑な作業です。最善の策は、この問題を処理してくれるサービスまたは API を見つけることです。MySQL を使用できますが (この質問を参照してください)、この種のスケーリング用に設計された別のデータベースを使用することをお勧めします。hadoopを見てください。

于 2012-12-01T11:05:12.057 に答える