ジェネレーターは入力したマシン ID を使い、ブラウザー内で Snowflake 形式の数値識別子を作ります。結果は時間順に並び、コンパクトなので、整数 ID が必要な fixture、プロトタイプ、サンプルに向いています。
このページは worker ID の割り当て、範囲予約、サービス間のシーケンス所有権調整を行いません。本番の分散システムでは、独立した生成器が衝突しないよう、マシン ID と worker ID の割り当てを自分の基盤で管理してください。
デコーダーは各 Snowflake ID を 42-bit ミリ秒タイムスタンプ、10-bit マシン ID、12-bit シーケンスに分解します。順序、worker 割り当て、同一ミリ秒の衝突確認に役立ちます。
このテーマに関するよくある疑問と回答をまとめました。
スノーフレーク ID は Twitter が考案した 64 ビットの一意識別子スキームで、タイムスタンプ、ワーカー/データセンター ID、シーケンス番号を一つの整数にエンコードします。
マイクロサービス、メッセージキュー、シャーディングされたデータベースなど、中央調整なしでソート可能な一意の識別子が必要な分散システムで使用します。
スノーフレーク ID は 64 ビット(128 ビットの UUID より小さい)で、時間順ソートが可能であり、マシン/データセンター情報を含みます。UUID はより広く標準化されていますが、サイズが大きく、本質的にソートできません。
はい。10 進数の Snowflake ID を 1 つ以上貼り付けると、タイムスタンプ、マシン ID、シーケンスに分解します。デコードはブラウザー内で完結します。
いいえ、スノーフレークIDの生成はすべてブラウザ内で実行されます。IDはJavaScriptでローカルに計算され、端末から外部に出ることはありません。