يتم استخدام معرفات Snowflake في البيئات الموزعة لإنشاء معرفات قصيرة وفريدة من نوعها خالية من التصادمات . على عكس الطرق التقليدية، مثل الاعتماد على قاعدة بيانات لإنشاء المعرفات أو استخدام معرف UUID طويل بطول 128 بت، تستخدم معرفات Snowflake الوقت وعمليات البت البسيطة. تسمح هذه التقنية الذكية لكل خدمة صغيرة بإنشاء معرفات فريدة بشكل مستقل، دون الحاجة إلى نظام مركزي لتجنب الاصطدامات.
يشبه إنشاء معرف Snowflake بناء لغز مكون من ثلاث قطع رئيسية. دعونا نقسمها:
خذ سلسلة بت طويلة n بت :
أولاً، نبدأ بسلسلة صغيرة بطول n. سيحتوي هذا على جميع المعلومات اللازمة لإنشاء معرف فريد.
تقسيمها إلى ثلاثة أقسام: ط، ي، ك:
تنقسم سلسلة البتات إلى ثلاثة أجزاء، بحيث i j k = n.
i - مكون الوقت:
الجزء الأول، أنا، يمثل الوقت الحالي. اختر وقت بدء ثابتًا (المعروف أيضًا باسم العصر)، وسيتم حساب البتات من خلال أخذ الوقت الحالي بالنانو ثانية وطرح وقت البدء. وهذا يضمن أن تكون المعرفات الأحدث دائمًا أكبر من المعرفات الأقدم.
j - معرف الجهاز:
الجزء الثاني، j، هو معرف الجهاز. عندما تبدأ الخدمة الصغيرة الخاصة بك، يتم تعيين معرف فريد لها (معرف الجهاز)، والذي يصبح الجزء j. وهذا يضمن عدم تعارض المعرفات التي تم إنشاؤها بواسطة أجهزة مختلفة، حتى لو تم إنشاؤها في نفس اللحظة بالضبط.
k - الرقم التسلسلي:
الجزء الأخير، k، هو الرقم التسلسلي. إنه يعمل كعداد يتزايد كلما تم إنشاء معرفات متعددة في نفس الوحدة الزمنية. وهذا يبقي المعرفات فريدة، حتى لو تم إنشاؤها بتتابع سريع.
فكر في معرف Snowflake كعلامة طبق خاصة في مطبخ مزدحم:
تحقق من مستودع GitHub هذا لتطبيق Go لإنشاء معرف Snowflake
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3