← Zana zote

Kitengenezea UUID (v4 GUID)

Tengeneza UUID (GUID) za nasibu za v4 papo hapo kwenye kivinjari chako. Jifunze UUID ya bit 128 ni nini, tofauti za matoleo, uwezekano wa mgongano, na wakati wa kuzitumia.

UUID ni nini hasa

UUID, kifupi cha Universally Unique Identifier, ni thamani ya biti 128 inayotumika kutambulisha kitu bila kuomba ruhusa kwa mtu yeyote kwanza. Unaweza pia kukiona kikiitwa GUID, au Globally Unique Identifier, ambalo ni jina tu ambalo Microsoft ilitoa kwa wazo lilelile ndani ya Windows na ulimwengu wa .NET. Maneno hayo mawili huelezea nambari ileile ya biti 128 katika karibu kila hali muhimu, hivyo mwenzako anaposema GUID na wewe ukasema UUID, karibu kila mara mnazungumzia kitu kilekile hasa.

Biti hizo 128 kwa kawaida huandikwa kama tarakimu 32 za hexadesimali zilizogawanywa katika makundi matano kwa alama za mkato, katika mfumo wa 8-4-4-12. Thamani ya kawaida inaonekana kama 123e4567-e89b-12d3-a456-426614174000. Alama za mkato hazibebi maana yoyote yenyewe; zipo tu ili binadamu aweze kusoma thamani hiyo bila kupoteza mahali alipofikia. Kila herufi ni tarakimu ya hex kutoka 0 hadi f, ndiyo maana UUID inahisi mnene zaidi kuliko nambari ya kawaida ijapokuwa, chini ya uso, ni nambari kubwa moja tu.

Kitoken cha kufikirika kinachong'aa cha hexadesimali kinachowakilisha kitambulisho cha kipekee cha biti 128 juu ya mandhari ya indigo iliyokoza
UUID ni nambari moja ya biti 128, iliyoandikwa kama tarakimu 32 za hex katika makundi matano yaliyounganishwa kwa mkato.

Matoleo, na kwa nini v4 hushinda

Kiwango hicho hufafanua matoleo kadhaa, na hutofautiana katika jinsi biti zinavyojazwa. Toleo la 1 linategemea muda: huunganisha pamoja muhuri wa muda wa sasa na anwani ya MAC ya mtandao wa mashine. Hilo hufanya thamani za v1 kupangika kwa mpangilio wa muda wa kutengenezwa, lakini pia hufichua taarifa kuhusu mahali na takriban wakati zilipotengenezwa, jambo ambalo si zuri siku zote. Matoleo ya 3 na 5 hutegemea jina, kwa kubadilisha kuwa hashi eneo la jina pamoja na jina ili ingizo lilelile daima litoe kitambulisho kilekile.

Toleo la 4 huchukua njia tofauti kabisa. Ni unasibu karibu safi. Kati ya biti 128, sita zimehifadhiwa kuashiria toleo na aina, zikiacha biti 122 kujazwa na data ya nasibu. Hakuna muhuri wa muda, hakuna anwani ya MAC, hakuna eneo la jina, kelele tu. Hiyo ndiyo sababu vitengenezaji vingi, ikiwemo hiki, hutoa v4 kama chaguo-msingi. Haifichui chochote kuhusu kifaa au wakati wa kutengenezwa, na haihitaji uratibu wowote kati ya wahusika wanaoitengeneza. Chombo katika ukurasa huu hufanya kazi kabisa kwenye kivinjari chako, hivyo thamani za nasibu kamwe haziondoki kwenye kifaa chako.

Uwezekano halisi wa mgongano

Wasiwasi wa busara ni kwamba UUID mbili za nasibu zinaweza siku moja kufanana. Kwa biti 122 za nasibu, nafasi ya thamani zinazowezekana za v4 ni 2 kwa nguvu ya 122, ambayo ni takriban 5.3 ikifuatiwa na sufuri 36. Kwa lugha ya kibinadamu, ungehitaji kutengeneza mabilioni ya UUID kila sekunde kwa miongo mingi kabla uwezekano wa mgongano mmoja kupanda hadi kitu unachoweza kupima. Kiwango chenyewe huelezea nafasi ya mgongano kuwa karibu sifuri kiasi cha kutoonekana. Kivitendo timu hutendea v4 kama za kipekee na kuendelea, na wako sahihi kufanya hivyo.

Funguo nyingi tofauti zinazong'aa zikielea katika nafasi kubwa iliyokoza bila marudio, kwa mchoro wa rangi ya samawati na dhahabu
Kundi la thamani zinazowezekana za v4 ni kubwa mno kiasi kwamba migongano haiwezekani kivitendo.

Wapi wasanidi programu huzitumia

Kwa kuwa upekee hauhitaji mamlaka kuu, UUID hung'aa mahali ambapo uratibu ni ghali au hauwezekani. Zinafaa vizuri kwa funguo msingi za hifadhidata, hasa wakati huduma kadhaa zinaingiza safu mlalo na huwezi kusimama kuuliza kihesabu kilichoshirikiwa kwa nambari inayofuata. Katika mifumo iliyosambaa, nodi mbili katika pande tofauti za sayari zote zinaweza kutengeneza vitambulisho wakati uleule bila kugongana. Pia zinaendesha funguo za idempotency za API, ambapo mteja huambatisha UUID kwenye ombi ili seva iweze kupuuza kwa usalama marudio kama mtandao ukajaribu tena. Vitambulisho vya kikao, majina ya faili, vitambulisho vya matukio, na funguo za ujumbe zote hutegemea sifa hiyohiyo.

UUID dhidi ya vitambulisho vya kuongezeka kiotomatiki

Mbadala wa kawaida ni namba inayoongezeka kiotomatiki: 1, 2, 3, na kuendelea. Vitambulisho vya mfululizo ni vidogo, hupangika kwa kawaida, na ni rahisi kusomeka, lakini vina hasara halisi. Vinafichua kuna rekodi ngapi na huruhusu watu wa nje kubashiri thamani za jirani, na hulazimisha kila kuingiza kupitia kihesabu kimoja, ambacho huwa kizuizi unaposhiriki hifadhidata au kuunganisha data kutoka vyanzo vingi. UUID hutatua matatizo hayo kwa kuruhusu mhusika yeyote kutengeneza funguo kwa uhuru na kwa kutofichua chochote kuhusu wingi au mpangilio. Gharama ni ukubwa na eneo dogo zaidi katika fahirisi. Kwa mifumo inayokua kwa upana au inayopaswa kuficha undani wake, gharama hiyo kwa kawaida ina thamani ya kulipwa. Unaweza kuchunguza hiki na zana nyinginezo kupitia mkusanyiko wetu wa vitengenezaji vyote, au vinjari mkusanyiko mpana wa zana za wasanidi programu kwa vipande vinavyohusiana.

Maswali yanayoulizwa mara kwa mara

Je, GUID ni sawa na UUID?

Kwa madhumuni ya kila siku, ndiyo. GUID ni jina la Microsoft kwa kitambulisho kilekile cha biti 128. Tofauti halisi pekee ni mpangilio wa baiti katika hali ghafi ya binary kwenye baadhi ya mifumo ya Windows; katika hali ya mfuatano wa maandishi ni sawa kabisa na inaweza kubadilishana.

Chombo hiki hutengeneza toleo gani la UUID?

Hutengeneza toleo la 4, aina ya nasibu. Kati ya biti zake 128, 122 zimejazwa na data ya nasibu, jambo linalofanya kila thamani kutokuwa na uwezekano wa kurudia, na kumaanisha kuwa haibebi muhuri wa muda au taarifa za kifaa.

Je, UUID mbili zinaweza kuwa sawa?

Kinadharia uwezekano si sifuri kabisa, lakini kwa takriban 5.3 mara 10 kwa nguvu ya 36 thamani zinazowezekana za v4 ni ndogo mno kiasi cha kutendewa kama isiyoonekana. Ungehitaji kutengeneza idadi kubwa mno kabla mgongano kuwa na uwezekano.

Kwa nini kutumia UUID badala ya namba inayoongezeka kiotomatiki?

UUID zinaweza kutengenezwa kwa uhuru na huduma yoyote bila kihesabu kilichoshirikiwa, hazifichui idadi ya rekodi au mpangilio, na hufanya kuunganisha data kutoka vyanzo vingi kuwa rahisi. Vitambulisho vya kuongezeka kiotomatiki ni vidogo lakini huwa kizuizi na hufichua taarifa kadiri mfumo unavyokua.

Je, UUID hutengenezwa kwenye seva?

Hapana. Chombo hiki hufanya kazi kabisa kwenye kivinjari chako, hivyo thamani za nasibu hutengenezwa ndani ya kifaa chako na kamwe hazitumwi popote. Hilo hufanya iwe salama kutumika kwa funguo na tokeni unazotaka kuweka faragha.

Mfumo wa alama za mkato unamaanisha nini?

Mpangilio wa 8-4-4-4-12 ni desturi tu ya usomekaji. Alama za mkato hazibebi data; hugawanya tarakimu 32 za hex katika vipande ili watu waweze kuangalia na kulinganisha thamani kwa urahisi zaidi.