Sequenzgenerator in Java für eindeutige ID

8

Ich plane, einen Sequenzgenerator zu schreiben, der benutzt wird in meiner REST-Ressourcenimplementierungsklasse während des zu generierenden Posts Eindeutige ID. Da jede Postanfrage von einem separaten Thread bearbeitet wird, Ich habe die Variable volatile und Methode synchronisiert.  Ich habe keine Option Sequenzen oder etwas zu verwenden traditionelle RDBMS bietet.

%Vor%

Dies ist, was ich bis jetzt habe und plane, eine Variable von zu erstellen SequenceGen in meiner REST-Implementierung. Meine eigentliche Frage ist Wille es irgendwo brechen? Ich testete mit zwei Threads und ich sehe nicht jeder Wert wird wiederholt.

    
Ayan 14.03.2014, 22:22
quelle

3 Antworten

21

Es wird funktionieren, aber AtomicInteger ist ein eingebauter Typ, der perfekt für Ihren Anwendungsfall ist.

%Vor%     
anttix 14.03.2014 22:30
quelle
1

Sie können die Vorteile von java.util.prefs.Preferences nutzen Behalte den aktuellen Status deines Sequenzgenerators auf der Festplatte und benutze ihn später erneut.

(Sie können auch mehrere Sequenzgeneratoren verwenden)

d.

%Vor%     
FaNaJ 29.02.2016 10:33
quelle
1

Wenn Sie String für IDs anstelle von int verwenden möchten, sollten Sie sich mit UUID (Universally Unique Identifier) ​​beschäftigen. Sehr einfach zu bedienen und wie der Name schon sagt, sind sie einzigartig. Hier ist ein Beispiel, wie man einen erzeugt:

%Vor%

A UUID bietet auch eine bessere Sicherheit als int , da Sie bei nächsten Zahlen die nächste Anforderungs-ID erraten können, indem Sie einfach 1 zu Ihrer Anforderungs-ID hinzufügen, aber die UUIDs sind nicht sequentiell schlank.

    
SergeyB 14.03.2014 22:39
quelle

Tags und Links