2009-05-05 6 views
1

私の質問に続くHow to improve the performance of client server architecture application最も近いRMIサーバにルーティングする方法は?

私は集中データベースといくつかのスレーブサーバーデータベース構成を維持することを決めました。私はSymmetric DSを使用して、スレーブとマスターのデータベースを複製する予定です。各サーバーデータベース構成は、クライアントの近くにインストールされます。理想的には、明白な理由から、クライアントからのリクエストが最も近いスレーブサーバーデータベースにルーティングされることを望みます。私はRMIを使ってサーバーに接続しているので、現在利用可能な製品/ APIがあるかどうかを知りたいのですが、これで解決できますか?上記のものより

任意の他の溶液が高く評価されて:)

注:クライアントコードをリファクタリングすることは間違いなく一つの代替であるが、アプリケーションは非常に巨大であるため、その巨大なリスク(既存のコードを壊すことができます)、時間を&が高価です。

答えて

1

配布し、一貫性のあるハッシュを見てみましょう:

http://en.wikipedia.org/wiki/Distributed_hash_table#Keyspace_partitioning http://en.wikipedia.org/wiki/Consistent_hashing

ベアボーン、あなたはセットアップ「キー」の代わりに、クライアントの識別子を(取る一貫したハッシュのバリアントを希望)、最も近いサーバーを探します。ボーナスメリットは、スレーブの1つがダウンした場合、インフラストラクチャが次の最も近いサーバーに透過的にルーティングされることです。

+0

分散ハッシュテーブルを実装するソリューションはありますか?私はGoogle上で見つけることができない。 – Snehal

+0

前述のように、一貫したハッシュの「異形」を行う必要がありますが、これはおそらく開始に役立ちます: http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html また、Java P2P x-sharingシステム(x:{fileなど})は、おそらく分散ハッシュアルゴリズムを実装しています。 (私はfreenet、またはjavaのbittorrentクライアントから始めるだろう..) – alphazero

関連する問題