Как создать 64-битный номер ID в распределенной среде - PullRequest
0 голосов
/ 04 февраля 2019

Как создать уникальный номер типа Java long в распределенной среде?Мое требование:

1- 64-битное число

2- безопасный перезапуск

3- Распределенная среда

3- Нет коллизий

Обратите внимание, что наличие распределенной среды без коллизий исключает простые подходы с использованием счетчика или текущего времени.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Используйте AtomicLong и таймер

, а затем обрабатывайте его значение с помощью таких коллекций, как Hashset, для предотвращения столкновений.

0 голосов
/ 04 февраля 2019

Если у вас действительно есть распределенная система, то есть несколько исполняемых экземпляров создают идентификаторы, и идентификатор должен быть уникальным для всех экземпляров, вам, вероятно, нужно использовать что-то вроде redis.Redis поддерживает операцию автоматического увеличения, которая поможет вам в этом.

...