स्नोफ्लेक आईडी का उपयोग वितरित वातावरण में टकराव-मुक्त, लघु, अद्वितीय आईडी उत्पन्न करने के लिए किया जाता है। पारंपरिक तरीकों के विपरीत, जैसे आईडी पीढ़ी के लिए डेटाबेस पर निर्भर होना या लंबे 128-बिट यूयूआईडी का उपयोग करना, स्नोफ्लेक आईडी समय और सरल बिटवाइज़ संचालन का उपयोग करते हैं। यह चतुर तकनीक टकराव से बचने के लिए किसी केंद्रीय प्रणाली की आवश्यकता के बिना, प्रत्येक माइक्रोसर्विस को स्वतंत्र रूप से अद्वितीय आईडी उत्पन्न करने की अनुमति देती है।
स्नोफ्लेक आईडी बनाना तीन प्रमुख टुकड़ों के साथ एक पहेली बनाने जैसा है। आइए इसे तोड़ें:
एक एन-बिट लंबी बिट स्ट्रिंग लें:
सबसे पहले, हम लंबाई n की एक बिट स्ट्रिंग से शुरू करते हैं। इसमें एक अद्वितीय आईडी बनाने के लिए सभी आवश्यक जानकारी होगी।
इसे तीन खंडों में विभाजित करें: i, j, और k:
बिट स्ट्रिंग को तीन भागों में विभाजित किया गया है, जैसे कि i j k = n.
i - समय घटक:
पहला भाग, i, वर्तमान समय का प्रतिनिधित्व करता है। एक निश्चित प्रारंभ समय चुनें (जिसे युग के रूप में भी जाना जाता है), और i के बिट्स की गणना वर्तमान समय को नैनोसेकंड में लेकर और प्रारंभ समय को घटाकर की जाएगी। यह सुनिश्चित करता है कि नई आईडी हमेशा पुरानी आईडी से बड़ी हों।
j - मशीन आईडी:
दूसरा भाग, जे, मशीन पहचानकर्ता है। जब आपकी माइक्रोसर्विस शुरू होती है, तो उसे एक अद्वितीय आईडी (मशीन आईडी) सौंपी जाती है, जो जे भाग बन जाती है। यह सुनिश्चित करता है कि विभिन्न मशीनों द्वारा उत्पन्न आईडी आपस में नहीं टकराएंगी, भले ही वे ठीक एक ही समय में बनाई गई हों।
k - अनुक्रम संख्या:
अंतिम भाग, k, अनुक्रम संख्या है। यह एक काउंटर की तरह कार्य करता है जो एक ही समय इकाई के भीतर एकाधिक आईडी उत्पन्न होने पर बढ़ता है। यह आईडी को अद्वितीय बनाए रखता है, भले ही वे तेजी से उत्पन्न होती हों।
एक व्यस्त रसोई में स्नोफ्लेक आईडी को एक विशेष डिश टैग के रूप में सोचें:
स्नोफ्लेक आईडी जनरेशन के गो कार्यान्वयन के लिए इस GitHub रेपो की जांच करें
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3