Die Erzeugung einer Global eindeutigen Bezeichner in Java

Zusammenfassung: ich bin die Entwicklung einer persistenten Java-web-Anwendung, und ich muss sicherstellen, dass alle Ressourcen, die ich beibehalten habe, globally unique identifiers um doppelte Einträge zu vermeiden.

Das Kleingedruckte:

  1. Ich bin nicht mit einem RDBMS, so habe ich keine Lust-Sequenz-Generatoren (wie Sie etwa von Oracle)
  2. Ich möchte es schnell sein, möglichst alle im Memory - Speicher, die ich lieber nicht haben, um eine Datei öffnen und die Schrittweite einen Wert
  3. Es braucht, um thread-sicher (ich gehe davon aus, dass nur eine JVM in einer Zeit, in der Notwendigkeit zu erzeugen, IDs)
  4. Es muss die Konsistenz zwischen Instanzen der JVM. Wenn der server heruntergefahren und startet, wird die ID-generator sollte nicht re-generieren, die die gleichen IDs generiert, die in früheren Instanzen (oder zumindest die chance hat, zu sein wirklich, wirklich schlank - ich erwarte viele Millionen presisted Ressourcen)
  5. Die ich gesehen habe, die Beispiele in der EJB-unique-ID-Muster-Artikel. Sie arbeiten nicht für mich (ich möchte lieber nicht allein auf System.currentTimeMillis (), da werden wir beibehalten von mehreren Ressourcen pro Millisekunde).
  6. Ich habe mir die Antworten vorgeschlagen, in diese Frage. Meine Sorge um Sie ist, was ist die chance, dass ich bekommen eine doppelte ID im Laufe der Zeit? Ich bin fasziniert von dem Vorschlag, java.util.UUID für eine UUID, aber wieder die Chancen auf eine doppelte sein müssen, verschwindend klein.
  7. Ich bin mit JDK6
Führen Sie mehrere Instanzen der Anwendung auf verschiedenen Rechnern? Wenn Sie sind, sind Sie wahrscheinlich starten Maschinen in Chargen-so dass es wahrscheinlich, dass mehrere Prozesse starten in der gleichen Millisekunde? Wenn ein Angreifer einen Weg findet, um zu einer UUID Kollision, gefährden die Sicherheit Ihrer Anwendung?
(A) welches Volumen von IDs generiert werden? Wie schnell? (Wie viele pro Sekunde/minute) (B) ja, UUIDs erfunden wurden, genau für Ihren Zweck.

InformationsquelleAutor Julie | 2008-10-10

Schreibe einen Kommentar