Генератор ID снеговика (в стиле Twitter)

ДанныеРазработчикСлучайный
Реклама · УДАЛИТЬ?

Создайте

10-битный идентификатор машины/работника (0-1023)
Пользовательский начальный временной отсчёт, используемый при формировании идентификатора

Или

Расшифровать


Декодированный Snowflake

Реклама · УДАЛИТЬ?

Гид

Генератор идентификаторов Snowflake (стиль Twitter)

Генератор ID снеговика (в стиле Twitter)

Генерация 64-битных идентификаторов Snowflake с использованием классической структуры Twitter: 41-битный временной отсчёт в миллисекундах, 10-битный идентификатор машины/работника и 12-битный последовательный номер в миллисекунде. Каждый идентификатор генерируется на стороне клиента с использованием арифметики BigInt, поэтому ничего не передаётся в браузер, и массовая генерация до 1000 идентификаторов остаётся без коллизий для одной машины.

Как использовать

  1. Множество Считать (от 1 до 1000) для количества идентификаторов Snowflake, которые вы хотите получить.
  2. Выберите Идентификатор машины между 0 и 1023, чтобы идентификаторы из разных работников никогда не сталкивались.
  3. Выберите Эпоха: Twitter (2010-11-04), Discord (2015-01-01) или простой Unix.
  4. Выберите Формат вывода: десятичный, шестнадцатеричный, бинарный, JSON или CSV.
  5. Нажмите Создайте, затем скопируйте или загрузите результат.
  6. Для декодирования вставьте существующий идентификатор Snowflake в декодер, чтобы увидеть его временной отсчёт, идентификатор машины, последовательность, шестнадцатеричное представление и разбивку на 64-битный бинарный формат.

Возможности

  • Массовая генерация – генерация до 1000 временно отсортированных 64-битных идентификаторов за один клик.
  • Настраиваемый идентификатор машины – полный диапазон 10-бит (0-1023) для распределённых развертываний.
  • Множественные эпохи – шаблоны эпох Twitter, Discord и Unix для совместимости между системами.
  • Несколько форматов вывода – десятичный, шестнадцатеричный, бинарный, JSON или CSV.
  • Встроенный декодер – расшифровка любого идентификатора Snowflake для временного отсчёта, идентификатора машины, последовательности, шестнадцатеричного и бинарного представлений.
  • Правильная обработка последовательности – автоматическое увеличение и ожидание следующего миллисекундного отсчёта, если исчерпан бюджет в 4096/мс.
  • Полностью на стороне клиента – арифметика BigInt, без обращений к серверу, ничего не логируется.

Часто задаваемые вопросы

  1. Что такое идентификатор Snowflake?

    Идентификатор Snowflake — это 64-битное целое число, предназначенное для распределённых систем. В 2010 году Twitter представил этот формат для замены автоматически инкрементируемых идентификаторов в базах данных: в состав идентификатора включается кастомный временной отсчёт в миллисекундах с момента определённой эпохи, идентификатор машины/работника и последовательный номер в миллисекунде, что позволяет генерировать упорядоченные, без коллизий идентификаторы без централизованного управления.

  2. Как работает структура 41 + 10 + 12 бит?

    Верхний бит зарезервирован как бит знака, оставляя 63 рабочих бита. Следующие 41 бита кодируют количество миллисекунд с момента кастомной эпохи (подходит для ~69 лет). Следующие 10 бит идентифицируют машину или работника (до 1024 машин). Оставшиеся 12 бит — это счётчик последовательности, который позволяет одной машине генерировать до 4096 идентификаторов в миллисекунду, прежде чем потребуется ожидание.

  3. Почему идентификаторы Snowflake сортируются по времени?

    Потому что временной отсчёт занимает наиболее значимые биты 64-битного значения. Любые два идентификатора из одного эпоха сравниваются сначала по временному отсчёту, а затем по идентификатору машины и последовательности. Это означает, что алфавитная или числовая сортировка идентификаторов также приблизительно соответствует временному порядку, что удобно для индексов в базах данных, пагинации и корреляции логов.

  4. Что происходит, если одна машина генерирует более 4096 идентификаторов за один миллисекундный интервал?

    Счётчик последовательности переполняется. Правильная реализация идентификатора Snowflake обнаруживает переполнение, ожидает, пока системный часовой отсчёт достигнет следующего миллисекундного значения, и затем сбрасывает счётчик последовательности до нуля. Эта программа следует этому шаблону, поэтому при массовой генерации не возникает дублирующихся идентификаторов на одной машине.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?