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.
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% 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:
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.
Tags und Links java multithreading sequence