Поиск решения для генерации коротких уникальных идентификаторов
В Telegram используется короткий и удобный числовой идентификатор пользователя. Возникает вопрос: существует ли готовый программный пакет или библиотека, способная генерировать аналогичные уникальные ID с соблюдением строгих технических условий?
Ключевые технические требования к системе генерации
- Производительность: Система должна устойчиво генерировать не менее 100 идентификаторов в секунду.
- Масштабируемость: Количество серверов (машин), на которых будет развернута генерация, изначально неизвестно и может меняться.
- Формат идентификатора: ID должен быть числовым, длиной примерно 10 десятичных цифр (что эквивалентно 34 битам информации).
- Глобальная уникальность: Каждый сгенерированный ID должен быть уникальным в рамках всей распределенной системы, независимо от того, на какой конкретной машине он был создан.
- Автономность: Генератор не имеет доступа к базе существующих ID (например, к таблице пользователей) и не может проверять уникальность по уже выданным значениям.
Таким образом, требуется решение, которое сочетает в себе высокую скорость, распределенность, компактный формат и гарантирует уникальность без централизованной координации или проверки.