0

5つのアプリケーションサーバーと10のWebサーバーを使用しています。複数のアプリケーションサーバーで18〜25サイズの乱数を生成する

現在、私はYYYYMMDDHHMMSMILLIに基づいてユニークな乱数を生成しています(年月日時間ミント秒ミリ秒)が、いくつかの倍のアプリケーションサーバーは、同じ時間(YYYYMMDDHHMMSMILLI)で、私は重複乱数を取得しています。この場合のリクエストのを取得します。

データベースに数値を格納するなどの方法はチェックできますが、複数のアプリケーションサーバーが同時に番号を生成するため便利ではありません。

固有の乱数を生成する方法を教えてください。

答えて

2

あなたのランダムIDは、タイムスタンプに直接関係する必要がない場合(すなわち、時系列順を意味する必要はありません)あなたは

UUID.randomUUID() 

のUUIDは128を持っていることで生成されたVersion 4(ランダム)UUIDを、使用する必要があります重複の可能性はごくわずかです。

時間順を維持する必要がある場合は、現在の世代戦略にサーバー識別子を追加します。

+0

正解。 UUIDは、この質問で説明されている問題を*正確に*解決するために考案されました。 –