"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्नोफ्लेक आईडी जनरेटर का कार्यान्वयन

स्नोफ्लेक आईडी जनरेटर का कार्यान्वयन

2024-11-07 को प्रकाशित
ब्राउज़ करें:727

Implementing Snowflake Id generator

स्नोफ्लेक आईडी क्या है?

स्नोफ्लेक आईडी का उपयोग वितरित वातावरण में टकराव-मुक्त, लघु, अद्वितीय आईडी उत्पन्न करने के लिए किया जाता है। पारंपरिक तरीकों के विपरीत, जैसे आईडी पीढ़ी के लिए डेटाबेस पर निर्भर होना या लंबे 128-बिट यूयूआईडी का उपयोग करना, स्नोफ्लेक आईडी समय और सरल बिटवाइज़ संचालन का उपयोग करते हैं। यह चतुर तकनीक टकराव से बचने के लिए किसी केंद्रीय प्रणाली की आवश्यकता के बिना, प्रत्येक माइक्रोसर्विस को स्वतंत्र रूप से अद्वितीय आईडी उत्पन्न करने की अनुमति देती है।

एक कैसे उत्पन्न करें

स्नोफ्लेक आईडी बनाना तीन प्रमुख टुकड़ों के साथ एक पहेली बनाने जैसा है। आइए इसे तोड़ें:

  1. एक एन-बिट लंबी बिट स्ट्रिंग लें:

    सबसे पहले, हम लंबाई n की एक बिट स्ट्रिंग से शुरू करते हैं। इसमें एक अद्वितीय आईडी बनाने के लिए सभी आवश्यक जानकारी होगी।

  2. इसे तीन खंडों में विभाजित करें: i, j, और k:

    बिट स्ट्रिंग को तीन भागों में विभाजित किया गया है, जैसे कि i j k = n.

  • i - समय घटक:

    पहला भाग, i, वर्तमान समय का प्रतिनिधित्व करता है। एक निश्चित प्रारंभ समय चुनें (जिसे युग के रूप में भी जाना जाता है), और i के बिट्स की गणना वर्तमान समय को नैनोसेकंड में लेकर और प्रारंभ समय को घटाकर की जाएगी। यह सुनिश्चित करता है कि नई आईडी हमेशा पुरानी आईडी से बड़ी हों।

  • j - मशीन आईडी:

    दूसरा भाग, जे, मशीन पहचानकर्ता है। जब आपकी माइक्रोसर्विस शुरू होती है, तो उसे एक अद्वितीय आईडी (मशीन आईडी) सौंपी जाती है, जो जे भाग बन जाती है। यह सुनिश्चित करता है कि विभिन्न मशीनों द्वारा उत्पन्न आईडी आपस में नहीं टकराएंगी, भले ही वे ठीक एक ही समय में बनाई गई हों।

  • k - अनुक्रम संख्या:

    अंतिम भाग, k, अनुक्रम संख्या है। यह एक काउंटर की तरह कार्य करता है जो एक ही समय इकाई के भीतर एकाधिक आईडी उत्पन्न होने पर बढ़ता है। यह आईडी को अद्वितीय बनाए रखता है, भले ही वे तेजी से उत्पन्न होती हों।

  1. टुकड़ों को जोड़ें: एक बार जब आपके पास i, j, और k मान हों, तो उन्हें एकल बिट स्ट्रिंग बनाने के लिए संयोजित करें। फिर, अपनी अंतिम स्नोफ्लेक आईडी प्राप्त करने के लिए इस बिट स्ट्रिंग को बेस 10 में बदलें।

एक त्वरित सादृश्य

एक व्यस्त रसोई में स्नोफ्लेक आईडी को एक विशेष डिश टैग के रूप में सोचें:

  • समय (i): यह रसोई में टिक-टिक करती घड़ी की तरह है, जिससे यह सुनिश्चित होता है कि बाद में बनाए गए व्यंजन पहले बनाए गए व्यंजनों की तुलना में अधिक संख्या में बनें।
  • मशीन आईडी (जे): प्रत्येक शेफ (या माइक्रोसर्विस) का अपना हस्ताक्षर होता है, जिससे यह सुनिश्चित होता है कि उनके डिश टैग किसी और के साथ टकराते नहीं हैं।
  • अनुक्रम संख्या (के): यदि कोई शेफ एक ही समय में कई व्यंजन बनाता है, तो वे अपने टैग में एक छोटी वृद्धि जोड़ते हैं, इसलिए प्रत्येक व्यंजन का एक अद्वितीय लेबल होता है।

स्नोफ्लेक को गो में लागू किया गया

स्नोफ्लेक आईडी जनरेशन के गो कार्यान्वयन के लिए इस GitHub रेपो की जांच करें

सूत्रों का कहना है

  1. https://blog.x.com/engineeering/en_us/a/2010/aघोषणा-स्नोफ्लेक
  2. https://en.wikipedia.org/wiki/Snowflake_ID
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/alquama/implementing-snowflake-id-generator-3f8k?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3