2009-06-01 3 views
0

私はアプリケーションのアーキテクチャ上の決定を下さなければならず、情報を複製したり、複数の場所に保存したりすることなく、以下を達成するための最良の方法を知りたいと思っています。スケールアウトアプリケーション(スプリットユーザーデータ) - シングルポイントログインの確立方法?

シナリオ:全ユーザデータの分離、自律的な部分と

  1. アプリケーションインスタンスが複数に分割され、地理的に分散したサーバ(例えば、ユーザー1 - ホノルルサーバ1上で1,000ユーザー1,001 - 2,000東京の別のものなど)。
  2. シングルユーザーデータは、のいずれかのサーバーのみで利用でき、他のサーバーでは利用できません。
  3. ユーザーは他のユーザーのデータを気にしないので、サーバー間の通信の本質的な必要はありません。
  4. ただし、アプリケーションは、ログインの中心点を必要とし、www.mysite.com/loginそれを呼び出すことができます私の最初のアイデアは、すべてのユーザーとそのサーバーを保持し、「マスター」データベースを持っていることでした

ログイン時に適切な場所にリダイレクトされます。

これを行うより簡単な方法がありますか?

答えて

1

サーバーの台数によっては、「ログインの中心点」に各ログイン要求をすべてのサーバーに送信(ブロードキャスト)する方法もあります。ほとんどのサーバは「ユーザ不明」に迅速に応答し、ユーザはユーザが存在するものとして自分自身を識別するなど、「マスターデータベース」への情報の「複製」を管理すること、整合性を保証することなどが望ましいスパースな情報を考えれば言うことは難しいが、少なくとも考慮する価値のある代替アーキテクチャかもしれない。

+0

+1:私たちは同じようなことをしています...誰かが間違ったサイトにログインした場合、その試みをブロードキャストして転送します。 –

関連する問題