Генератор 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

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

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

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

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

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

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

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