0

Ich verwende die 5 Anwendungsserver und 10 Webserver.Generieren Sie die eindeutige Zufallszahl 18 bis 25 in mehreren Anwendungsservern

Momentan erstelle ich die eindeutige Zufallszahl basierend auf YYYYMMDDHHMMSMILLI (Jahr Monat Tag Stunden Mints Sekunden Millisekunden), aber einige Male Anwendungsserver bekommen die Anfrage zur gleichen Zeit (YYYYMMDDHHMMSMILLI) diesen Fall erhalte ich die doppelte Zufallszahl.

Ich überprüfe mögliche Möglichkeiten wie Speichern der Nummer in der Datenbank, aber nicht nützlich, weil mehrere Anwendungsserver die Nummer zur gleichen Zeit generieren.

Bitte helfen Sie mir zu möglichen Möglichkeiten, einzigartige Zufallszahl zu generieren.

Antwort

2

Wenn Ihre zufällige ID nicht direkt mit einem Zeitstempel bezogen werden muß (dh muss nicht chronologische Reihenfolge implizieren) sollten Sie 128 hat durch

UUID.randomUUID() 

UUIDs ein Version 4 (random) UUID, erzeugt verwenden Bits und die Möglichkeit einer Duplizierung ist infinitesimal.

Wenn Sie die chronologische Reihenfolge beibehalten müssen, fügen Sie eine Server-ID an Ihre aktuelle Generierungsstrategie an.

+0

Richtige Antwort. UUIDs wurden erfunden, um * genau * das in dieser Frage beschriebene Problem zu lösen. –

Verwandte Themen