В этой теме есть несколько сообщений по SO. Каждый из них говорит о конкретном подходе, поэтому хотел просто получить сравнение в одном вопросе.
Использование новой даты() как уникального идентификатора
Генерирование глобально уникального идентификатора в Java
Я пытаюсь реализовать функцию, в которой мы можем идентифицировать определенные события в файле журнала. Эти события должны быть связаны с уникальным идентификатором. Я пытаюсь разработать стратегию для этого уникального поколения. Идентификатор должен иметь 2 части: некоторая статическая информация + некоторая динамическая информация Журналы можно искать для шаблона, когда требуется отладка событий. У меня есть три способа:
- статическая информация + Joda Дата времени ( "abc" + 2014-01-30T12: 36: 12.703)
- статическая информация + атомное целое
- статическая информация + UUID
В рамках этого вопроса несколько JVM не рассматриваются. Мне нужно генерировать уникальные идентификаторы эффективным образом на одной JVM. Кроме того, я не смогу использовать решение, зависящее от базы данных.
Какая из трех вышеупомянутых стратегий работает лучше всего?
- Если не один из вышеперечисленных, любая другая стратегия?
- Является ли стратегия времени, основанная на Йоде надежной? JVM является одиночным, но будут одновременные пользователи, поэтому могут быть параллельные события.
- В сочетании с одной из вышеперечисленных/других стратегий, мне нужно сделать мой метод потокобезопасным/синхронизированным?