複数のクラスタに配備されたユーザー作成モジュールを構築する場合の最良の戦略は何ですか?java cluseteredアプリケーションでのユーザーIDの作成
基本的に、別のユーザーが同じユーザー名を選択しないようにしたい、ユーザー名が一意のIDです。同じユーザー名要求を別のクラスターに同時にトリガーできます。
各作成は、要求されたユーザー名の存在を検索します。あなたはUUIDクラスとそのメソッドrandomUUID()を使用することができるユニークなユーザーIDの事前
複数のクラスタに配備されたユーザー作成モジュールを構築する場合の最良の戦略は何ですか?java cluseteredアプリケーションでのユーザーIDの作成
基本的に、別のユーザーが同じユーザー名を選択しないようにしたい、ユーザー名が一意のIDです。同じユーザー名要求を別のクラスターに同時にトリガーできます。
各作成は、要求されたユーザー名の存在を検索します。あなたはUUIDクラスとそのメソッドrandomUUID()を使用することができるユニークなユーザーIDの事前
に
感謝。このクラスは、この特定のニーズに対する答えです。ユーザー名についてソリューションの1つは、すべてのクラスタに対して単一のDBまたはDBテーブルを持つことです。そのため、すべてのクラスタで同じソースに対してチェックが行われ、トランザクションレベルで同期の問題を処理できます。ユーザー名列は一意です。もう一つのアイデアは、おそらくあなたのクラスタの外の単一サーバ上にホストされているWebサービスを持っているということです。このサービスはユーザー名の確認と書き込みを担当し、すべてのクラスタがこのサービスを使用します。並行性の問題を処理するのは、このサービス責任です。もちろん、それを逐次的にするための最も原始的な解決策、すなわちその時に1つの要求。時には十分に良いかもしれません。そうでない場合は、パフォーマンスは向上しますが複雑なその他のテクニックがあります。
詳細についてはMichealありがとうございます。実際には、データストアがLDAPなので、アプリケーション層内に問題があります。ユーザー名がユーザーによって選択されるとき、私はそれをアプリケーション層と一意にしたいと思っています。実際には、現在、単一ノードSOAPサービスとしてホストされており、負荷のために分散させる必要があります。 – lasi
あなたが誤解していない限り、提案された解決策は依然としてアプリケーション層に適用されるようです。あなたのアプリケーションが実行されているすべてのクラスタに対して単一のテーブルがある場合、ユーザー名が有効かどうかを確認するためにクラスタが呼び出すリモートWebサービスと同じソリューションが提供されます。それでも問題が解決しない場合は、理由を明確にしてください。 –
マイケルはあなたのコメントを感謝します。そのLDAPユーザー名はRDBM表の列として一意ではないため。したがって、一意性はアプリケーション層で維持されます。それぞれの作成の前に、有効性のチェックがあります。しかし、私の懸念は、2つのクラスタチェックの妥当性とは、両方が同じユーザー名を同時に作成するつもりです。だから、アプリケーション層でこれを処理する最善の方法は何ですか? – lasi