2016-11-04 8 views
0

私はawsでホストされているJavaで分散コンピューティング環境を作成しようとしています。私はいくつかのコンピューティング・ノードを持ち、固有のUUID(後でデータベース・キーとして使用される)を生成する必要があります。 私がUUID仕様を理解する限り、UUID Type 2のみがdceに対して安全です。 javaには既存の実装がありますか?JavaでUUID Type 2を生成

答えて

0

java.util.UUID

UUID id = UUID.randomUUID(); 
+0

ドキュメントによると、これは私が必要とするものではないタイプ4のUUIDを生成します。私はタイプ2のUUIDが必要です。 – Eric

+0

私の悪いです。しかし、Wikipediaによると、 "バージョン2のUUIDはグループIDまたはユーザーIDと日付時刻から生成されます" [wikii](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_2_.28DCE_security.29) – slayne

+0

type2 UUID完全にランダムではありません。 – slayne

1

は、あなたが気にすべてがランダムに分散環境での文字列を生成している場合、あなたはjava.util.UUIDからUUID.randomUUID()に頼ることができるはずがあります。

例えば、DynamoDBMapperクラスを参照してください。これは、DynamoDB APIの高レベルの抽象化を提供します。 @DynamoDBAutoGeneratedKeyとしてマークされているすべての@DynamoDBHashKeyフィールドの場合、それは内部的に上記の方法を使用しています。

は、自動生成されたものとして、パーティションキーまたはソートキープロパティをマークします。これらの属性を保存するとき、DynamoDBMapperはランダムUUIDを生成します。

DynamoDBで動作する場合は、動作する可能性も高いです!

+0

これは私が使うべきだと私は思う。しかし、PutItemRequestの後にどのようにキーを取得できますか? java sdk [withReturnValues](http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/model/PutItemRequest.html#withReturnValues-com.amazonaws.services.dynamodbv2)。 'PutItemRequest'の' model.ReturnValue- ')は古い値しか返せません。 – Eric

+0

はDynamoDBMapperを使用します。保存されたオブジェクト全体を返します。 –

関連する問題