2017-06-02 17 views
0

私は水平に拡大することができるウェブアプリケーションを開発する経験がないので、経験のある方が正しい方向に私を導く必要があります。分散データベースのユーザーセッションを管理する方法は?

ログインセッションをデータベースに格納する正しい方法を理解するのは難しかったので、将来私はレプリケーションを使用する予定があるときにデータベースに保存することさえ問題ですか?もしそうでなければ、交代者は何ですか?

は、私は、同じユーザーに関連した、独自のセッションでサーバーに接続することが異なるクライアント(アンドロイド、Windowsの、...)を必要と私は使用しています:

1 - セント-OSをOSとして

2 - DBMS

3としてのPostgreSQL - HTTPサーバとサーブレットコンテナ

4としてTomee - パーティション表(PostgreSQLの継承テーブル)性能、メモリ索引スキャン中のチャンス、断片化を防止し、等を改善する

私の問題は、クライアントから受信したすべてのリクエスト(すべてのセッションに独自の暗号化キーがあります)でセッションの可用性をチェックする必要があり、分散環境で何百万ものセッションを持つことができます作成されたセッションが適切なタイミングでレプリケートされたデータベースで使用できることを確認してください。 RDBMSでのユーザーセッションを保存

答えて

0

を支援するための

おかげでevantuallyアプリケーションのperfermanceを減少します。ユーザー・セッションを保管および読み取るための分散キャッシュ・メカニズムを見てください。 RedisなどのユーザーセッションにNoSQLデータベースソリューションを強くお勧めします。これは、キーと値のペアのメモリ内ストレージを可能にし、非常に高速に応答します。さらに、永続性のためにメモリ内のキーと値のペアをディスクに格納するために、コンフィギュレーションファイルを調整することができます。また、複数のNoSQLインスタンスとHashMapsなどの内部データ構造にわたるキーと値のペアの配布に焦点を当てる必要があります。独自のハッシュアルゴリズムを使用して、高可用性を実現する複数のインスタンスにキーと値のペアを分散することができます。データを水平にシャニングすると問題が発生することに注意してください。具体的にはCAP theorem - Availability and Partition Toleranceを参照してください。

関連する問題