Efnisyfirlit[Fela][Sýna]
- 1. Hvað meinarðu með kerfishönnun?
- 2. Hverjir eru mikilvægustu eiginleikar kerfishönnuðar?
- 3. Hvað nákvæmlega er CAP setningin?
- 4. Hvað skilur þú við álagsjöfnun?
- 5. Hver er munurinn á ósamstilltri forritun og samhliða forritun?
- 6. Hver er munurinn á láréttri og lóðréttri mælingu?
- 7. Hvað áttu nákvæmlega við með leynd, afköst og kerfisframboð?
- 8. Hvað eru SÚR eiginleikar?
- 9. Hvað nákvæmlega er sharding?
- 10. Hvað er CDN?
- 11. Af hverju að nota CDN?
- 12. Hver er munurinn á sundrun og skiptingu?
- 13. Hvað nákvæmlega er skyndiminni?
- 14. Hvað eru CDN brún netþjónar?
- 15. Hver eru mismunandi samræmismynstur fyrir kerfishönnun?
- 16. Hvað meinarðu með bjartsýnislæsingu?
- 17. Hvað áttu nákvæmlega við með "leiðtogakjöri"?
- 18. Hver er nálgun þín til að hanna TinyURL-líka vefslóð styttingarþjónustu?
- 19. Hver er nálgun þín við hönnun twitter?
- 20. Búðu til fréttastraumskerfið fyrir Facebook
- 21. Hver er BASE eign kerfis?
- 22. Hvað er álagsjöfnun með IP-tölu skyldleikatækni?
- 23. Hvað nákvæmlega eru reiknirit til að skipta um skyndiminni (eða útrýmingarstefnu)?
- 24. Hvað áttu nákvæmlega við með dreifðri færslu?
- 25. Hvað nákvæmlega er hungur?
- Niðurstaða
Áður en þú byrjar mælum við með að þú lesir okkar kynningarleiðbeiningar um kerfishönnun til að hressa upp á grundvallarþekkingu þína.
Þegar þú tekur viðtöl í stöðu sem krefst þekkingar á kerfishönnun, hefur þú tækifæri til að tala um bakgrunn þinn og sýna fram á getu þína til að þróa flókin kerfi.
Þegar þú talar við hugsanlegan vinnuveitanda gæti það hvernig þú tjáir þekkingu þína hjálpað þér að sýna fram á að þú sért hæfur umsækjandi fyrir stöðuna.
Þú getur undirbúið þig fyrir atvinnuviðtalið þitt með því að læra helstu hönnunarhugtök og hugsa um hvernig þú bregst við fyrirspurnum um þau. Við munum fara yfir nokkrar dæmigerðar kerfishönnunarviðtalsspurningar og svör í þessari færslu til að hjálpa þér að undirbúa þig fyrir næsta viðtal.
1. Hvað meinarðu með kerfishönnun?
Ferlið við að koma á kerfiseinkennum, þar með talið einingar, arkitektúr, íhluti og viðmót þeirra, og gögn byggð á fyrirfram ákveðnum forsendum er þekkt sem kerfishönnun.
Það er ferlið við að skilgreina, búa til og hanna kerfi til að mæta sérstökum markmiðum og markmiðum fyrirtækis eða stofnunar. Kerfishönnun snýst meira um kerfisgreiningu, byggingarmynstur, API, hönnunarmynstur og að líma þetta allt saman heldur en kóðun.
2. Hverjir eru mikilvægustu eiginleikar kerfishönnuðar?
- Samskipti notenda
- Ytra API símtal
- Ferlar án nettengingar
3. Hvað nákvæmlega er CAP setningin?
Samkvæmt CAP (Consistency-Availability-Partition Tolerance) setningunni getur dreift kerfi ekki tryggt C, A og P allt á sama tíma. Það getur í mesta lagi veitt tvær af þremur tryggingum. Við skulum nota dreift gagnagrunnskerfi til að aðstoða okkur við að skilja þetta.
- Samræmi: Þetta tilgreinir að gögn verða að vera í samræmi þegar gagnagrunnsfærslu er lokið. Til dæmis ættu allar fyrirspurnir að skila sama svari eftir uppfærslu gagnagrunns.
- Framboð: Gagnagrunnarnir verða að vera tiltækir og móttækilegir á hverjum tíma.
- Skiptingaþol: Jafnvel þótt samskipti verði erfið ætti gagnagrunnskerfið að halda áfram að virka.
4. Hvað skilur þú við álagsjöfnun?
Hlaðajafnvægi er ferlið við að dreifa komandi umferð á skilvirkan hátt meðal hóps bakenda netþjóna. Þetta er nefnt miðlarahópar. Nútíma vefsíður eru byggðar til að takast á við milljónir fyrirspurna frá viðskiptavinum og svara þeim hratt og áreiðanlega. Það þarf fleiri netþjóna til að takast á við þessar kröfur.
Í þessu tilfelli er mikilvægt að skipta beiðniumferð á skilvirkan hátt á hvern netþjón til að forðast of mikið álag. Álagsjafnarinn virkar sem umferðarlögga, stöðvar beiðnir og vísar þeim á milli tiltækra netþjóna þannig að enginn netþjónn sé of þungur, sem gæti rýrt frammistöðu forrita.
5. Hver er munurinn á ósamstilltri forritun og samhliða forritun?
Þegar þú keyrir eitthvað ósamstillt gefur það til kynna að þú þurfir ekki að bíða eftir að því ljúki áður en þú getur farið í eitthvað annað. Samhliða er átt við samtímis framkvæmd margra verkefna.
Þegar þú getur skipt störfum í mismunandi vinnuafl, virkar samhliða á áhrifaríkan hátt. Ósamstilltur og svarhringingar eru leið (tól eða vélbúnaður) til að tákna samhliða, þ.e. hópur aðilum sem gætu átt samskipti og deilt auðlindum.
6. Hver er munurinn á láréttri og lóðréttri mælingu?
Að bæta nýjum tölvubúnaði við netkerfi sem dreifir vinnslu- og minnisþörfinni yfir dreifð net tækja er kölluð lárétt mælikvarði. Einfaldlega sagt, nýjum netþjónstilvikum er bætt við núverandi laug og umferðarálagi er dreift á skilvirkan hátt á milli þessara tækja.
Lóðrétt mælikvarði vísar til hugmyndarinnar um að stækka auðlindagetu einnar tölvu með því að bæta við vinnsluminni, skilvirkum örgjörvum eða flytja yfir í nýja vél með meiri afkastagetu. Hægt er að auka virkni netþjónsins án þess að þörf sé á forritunarbreytingum.
7. Hvað áttu nákvæmlega við með leynd, afköst og kerfisframboð?
Frammistaða er mikilvægur þáttur í kerfishönnun þar sem hún stuðlar að hraða og áreiðanleika þjónustu okkar. Þrír mikilvægustu árangursmælikvarðar eru eftirfarandi:
- Tíminn sem það tekur að koma einni skilaboðum til skila á millisekúndum kallast leynd.
- Gagnamagnið sem tókst að flytja í gegnum kerfi á tilteknu tímabili er nefnt afköst. Bitar á sekúndu eru notaðir til að mæla það.
- Tíminn sem kerfi er tiltækt til að bregðast við fyrirspurnum er skilgreint af framboði þess. Spenntur kerfis / (spenntur kerfis+niðurtími) er formúlan til að reikna hann út.
8. Hvað eru SÚR eiginleikar?
- Atomicity: Það tryggir að breytingar á gagnagrunni eru annað hvort allar eða engar.
- Samræmi: Gagnagildi í gagnagrunninum eru í samræmi.
- Einangrun: Það vísar til aðskilnaðar tveggja viðskipta.
- Ending: Gögn eru varðveitt jafnvel þótt þjónninn bili.
9. Hvað nákvæmlega er sharding?
Sharding er aðferðin við að skipta risastóru rökréttu gagnasafni í marga gagnagrunna. Það vísar einnig til láréttrar gagnaskiptingar vegna þess að gögnin verða geymd á nokkrum tölvum. Fyrir vikið getur sameiginlegur gagnagrunnur séð um fleiri fyrirspurnir en ein risastór tölva.
10. Hvað er CDN?
Efnisafhendingarnet er alheimsnet tölva sem vinna saman að því að veita internetupplýsingar hratt. Það gerir kleift að afhenda þætti eins og HTML síður, JavaScript skrár, stílblöð, myndir og myndbönd sem eru nauðsynleg til að hlaða internetefni.
11. Af hverju að nota CDN?
- Miðað við að kyrrstæður auðlindir séu um 80% af vefsíðu, með því að nota CDN dregur það verulega úr álagi á upprunaþjóninn.
- Þar sem það er minni vegalengd til að ferðast verða upplýsingar veittar hraðar til eigenda vefsíðna sem hafa gesti frá mörgum landfræðilegum svæðum.
- Notendur CDNs njóta einnig góðs af getu til að stækka hratt upp og niður til að bregðast við umferðaráhrifum.
12. Hver er munurinn á sundrun og skiptingu?
Samnýting gagnagrunns - Gagnasöfnun er aðferð til að skipta einu gagnasafni í fjölda gagnagrunna þannig að hægt sé að geyma það á mismunandi vinnustöðvum. Hægt er að skipta stærri gagnasöfnum í smærri bita og geyma í nokkrum gagnahnútum, sem eykur heildargeymslugetu kerfisins.
Með því að dreifa gögnunum yfir margar vélar getur sameiginlegur gagnagrunnur séð um fleiri fyrirspurnir en eitt kerfi.
Gagnagrunnsskipting er ferlið við að skipta geymdum gagnagrunnshlutum (töflum, vísitölum og skoðunum) í aðskilda hluta. Til að auka stýranleika, afköst og aðgengi er stórum gagnagrunnshlutum skipt í skiptingu.
Í sumum tilfellum getur skipting bætt hraða þegar aðgangur er að skiptu gögnum. Skipting getur minnkað vísitölustærð og aukið líkurnar á að finna þær vísitölur sem þarfnast í minni með því að virka sem leiðandi dálkur í vísitölum.
13. Hvað nákvæmlega er skyndiminni?
Skyndiminni er aðferðin við að geyma afrit af skrám á tímabundnu geymslusvæði sem kallast skyndiminni, sem flýtir fyrir gagnaaðgangi og dregur úr leynd á vefsvæði. Aðeins er hægt að geyma ákveðið magn af gögnum í skyndiminni.
Þess vegna er mikilvægt að ákvarða skyndiminni uppfærslutækni sem hentar best fyrir viðskiptamarkmiðin.
14. Hvað eru CDN brún netþjónar?
CDN netþjónarnir sem geyma efni sem er aflað af upprunaþjóninum þínum eða geymsluklasa eru þekktir sem brúnþjónar. Viðverustaður er hugtak sem er oft notað til að lýsa brúnþjónum (POP).
Jaðarþjónarnir eru líkamlega staðsettir við POP. Við það POP gætu upplýsingar verið vistaðar af mörgum brúnþjónum.
Getan til að útvega hluta vefsíðu frá nokkrum stöðum dregur úr fjarlægðinni milli gesta og vefþjóns, sem leiðir til minni leynd. CDN brún netþjónar ná þessu nákvæma markmiði.
15. Hver eru mismunandi samræmismynstur fyrir kerfishönnun?
Sérhver lestrarbeiðni ætti að sækja nýjustu skrifuðu gögnin, samkvæmt CAP setningunni. Þegar mörg gagnaafrit eru aðgengileg verður erfitt að samstilla þau þannig að viðskiptavinir fái fersk gögn stöðugt. Eftirfarandi eru möguleg samkvæmismynstur:
- Veik samkvæmni: Í kjölfar gagnaritunar getur lesbeiðnin hugsanlega fengið uppfærð gögn eða ekki. Þetta stöðugleikastig er tilvalið fyrir rauntímaforrit eins og VoIP, myndspjall og fjölspilunarleiki.
- Endanleg samkvæmni: Lest mun að lokum skoða nýjustu gögnin innan millisekúndna eftir að gögnin eru skrifuð. Gögnin eru afrituð ósamstillt í þessu tilfelli. DNS og tölvupóstkerfi eru dæmi um þetta. Þetta virkar á áhrifaríkan hátt í kerfum með mikið framboð.
- Sterkt samræmi: Eftir gagnaskrif munu framtíðarlesendur skoða nýjustu gögnin. Gögnin eru afrituð samstillt í þessu tilfelli. Þetta má sjá í RDBMS og skráarkerfum, sem henta fyrir gagnaflutning.
16. Hvað meinarðu með bjartsýnislæsingu?
Bjartsýn læsing er kerfi þar sem þú lest færslu, skráir útgáfunúmer (aðrar leiðir eru dagsetningar, tímastimplar eða eftirlitssummur/kákkjallar), og athugar síðan hvort útgáfan hafi ekki breyst áður en þú skrifar hana til baka.
Þegar þú skrifar skrána til baka notarðu útgáfuna til að sía uppfærsluna til að tryggja að hún sé atóm. (þ.e. hefur ekki verið breytt á milli þess þegar þú athugar útgáfuna og þegar þú skrifar færsluna á diskinn) og uppfærðu það allt í einu.
17. Hvað áttu nákvæmlega við með "leiðtogakjöri"?
Í dreifðu kerfi með fjölmörgum netþjónum sem stuðla að framboði forritsins geta komið upp tímar þar sem aðeins einn þjónn er ábyrgur fyrir að uppfæra API frá þriðja aðila, þar sem margir netþjónar gætu valdið vandamálum við notkun API.
Þessi þjónn er þekktur sem aðalþjónninn og aðferðin við að velja hann er þekkt sem leiðtogakjör. Þegar leiðtogaþjónninn bilar í dreifðu kerfi verða netþjónarnir að taka eftir biluninni og velja nýjan leiðtoga. Með því að nota samstöðutækni hentar þessi nálgun best fyrir mikið framboð og sterka samkvæmni.
18. Hver er nálgun þín til að hanna TinyURL-líka vefslóð styttingarþjónustu?
TinyURL breytir langri vefslóð í eina, einstaka stutta vefslóð. Þessi tækni getur einnig samþykkt stutta vefslóð og skilað öllu vefslóðinni.
Hverjir eru nokkrir mikilvægu eiginleikarnir?
- Gerðu vefslóð sem er styttri en upprunalega.
- Haltu lengri vefslóðinni og skiptu henni út fyrir þá styttri.
- Leyfa tilvísun í stuttum vefslóðum.
- Stuttar vefslóðir með sérsniðnum nöfnum eru studdar.
- Meðhöndla nokkrar fyrirspurnir í einu.
Hver eru algengustu vandamálin?
- Hvernig heldurðu utan um gagnagrunnsgeymslu?
- Hvað gerist ef notendaálagið fer yfir væntingar?
- Hvað ef tveir einstaklingar nota sömu sérsniðnu vefslóðina?
Íhugaðu eftirfarandi tillögur:
- Hashing er hugmynd sem hægt er að nota til að tengja saman gamlar og nýjar vefslóðir.
- REST API hægt að nota til að takast á við framhlið samskipti og koma jafnvægi á mikið álag.
- Multithreading er hugmynd sem gerir þér kleift að sinna nokkrum beiðnum í einu.
- Upprunalegar vefslóðir eru geymdar í NoSQL gagnagrunnum.
19. Hver er nálgun þín við hönnun twitter?
Gefnar kröfur:
- Sendi tíst
- Fylgist með öðrum notendum
- Tíststraumur/fréttafóður
- Kerfið er skalanlegt
- Hleðst fljótt
- Kerfið er áreiðanlegt
Þú getur byrjað að hugsa upp Twitter API hönnunina þína þegar þú hefur sett viðmiðin. Svona myndi það líta út:
Til að byrja, munum við skissa upp helstu endapunkta API. Hér eru nokkur dæmi:
- sendTweet (skilaboð)
- fylgja notanda(notandaauðkenni)
- unfollowUser (notandaauðkenni)
- getFeed (síðu)
Síðan er hægt að teikna upp arkitektúrinn sem gerir þessa eiginleika kleift. Við getum byrjað á notandanum sem sendir inn beiðni um netþjón. Við getum sett upp viðbótar API netþjóna á bak við álagsjafnara til að aðstoða við að leiða stærri umferðarstig til að uppfylla sveigjanleikaþörfina. Við þurfum að bæta við gagnagrunni til að geyma tíst okkar núna.
Það er mikilvægt að muna að API sem við útvegum ætti að vera skalanlegt. Til að gera þessa þjónustu skalanlega getum við látið einn af API netþjónum okkar lesa úr sérstöku skyndiminni fyrir fréttastrauminn okkar. Á meðan við gerum það ættum við líka að nota straumveitu til að halda straumskyndiminni okkar uppfærðum.
20. Búðu til fréttastraumskerfið fyrir Facebook
Fréttastraumurinn á Facebook gerir notendum kleift að sjá hvað er að gerast í hringjum vina sinna, uppáhaldssíðum og samtökum sem þeir hafa fylgst með.
Hver eru nokkur af helstu eiginleikum?
- Búðu til fréttastraum sem byggir á færslum frá öðrum kerfiseiningum sem notandinn fylgist með.
- Hægt er að nota texta, myndir, hljóð og myndskeið í fréttastraumi.
- Í rauntíma skaltu bæta nýju efni við fréttastraum notandans.
Hver eru nokkur algengustu vandamálin?
- Hvað ef nýja færslan tekur langan tíma að birtast í fréttastraumnum?
- Getur reikniritið stjórnað aukningu í virkni notenda?
- Hvaða færslur ættu að birtast fyrst í fréttastraumnum?
Íhugaðu eftirfarandi tillögur:
- Skoðaðu fanout vélbúnaðinn til að dreifa færslum til fylgjenda.
- Skoðaðu hvernig hægt er að nota klippingu til að meðhöndla mikið notendaálag á skilvirkan hátt.
- Ekki ætti að afrita straumgögn notanda á fjölmörgum netþjónum. Í staðinn er hægt að deila út frá notendaauðkennum.
21. Hver er BASE eign kerfis?
BASE eiginleikarnir eru alls staðar nálægir í NoSQL gagnagrunnum sem hafa nýlega komið fram. BASE kerfi veitir ekki samræmi, samkvæmt CAP setningunni. Þetta er samsett skammstöfun sem samsvarar eftirfarandi eiginleikum kerfis CAP setningarinnar:
- Hugtakið „í grundvallaratriðum tiltækt“ þýðir að kerfið verður alltaf tiltækt.
- Mjúkt ástand þýðir að ástand kerfisins getur verið breytilegt með tímanum, jafnvel þótt ekkert inntak sé veitt. Þetta stafar að mestu af því hvernig líkanið er samkvæmt.
- Í ljósi þess að kerfið fær ekki inntak á því tímabili þýðir endanleg samræmi að kerfið verður stöðugt með tímanum.
22. Hvað er álagsjöfnun með IP-tölu skyldleikatækni?
Önnur áberandi aðferð við álagsjafnvægi er skyldleiki IP-tölu. IP vistfang viðskiptavinarins er tengt við netþjónshnút í þessari aðferð. Einn netþjónnhnútur sér um allar beiðnir frá IP tölu viðskiptavinar.
Þessi aðferð er einföld í framkvæmd þar sem IP vistfangið er alltaf aðgengilegt í HTTP beiðnihausnum og engar frekari stillingar eru nauðsynlegar. Ef líklegt er að viðskiptavinir þínir fái óvirkjaða vafrakökur getur þetta form álagsjöfnunar verið hagkvæmt.
23. Hvað nákvæmlega eru reiknirit til að skipta um skyndiminni (eða útrýmingarstefnu)?
Skyndiminni reiknirit (einnig þekkt sem skyndiminni skipti reiknirit, skyndiminni skipti stefnu, eða skyndiminni eviction stefnur) eru hagræðingarleiðbeiningar, eða reiknirit, sem tölvuforrit eða vélbúnaðarviðhald getur notað til að stjórna skyndiminni gagna sem geymd eru á tölvunni.
Skyndiminni eykur hraða með því að geyma nýlega notuð eða oft notuð gögn á minnissvæðum sem er fljótlegra eða ódýrara að nálgast en hefðbundin minnisgeymsla. Þegar skyndiminni er fullt verður reikniritið að ákveða hvaða hluti á að fjarlægja til að búa til stað fyrir nýja.
24. Hvað áttu nákvæmlega við með dreifðri færslu?
Dreifð viðskipti eru allar aðstæður þar sem stakur atburður veldur breytingu á tveimur eða fleiri aðskildum gagnauppsprettum sem ekki er hægt að fremja á frumeindasviði.
Það verður miklu flóknara í heimi smáþjónustu þar sem hver þjónusta er vinnueining og oftast verða fjölmargar þjónustur að vinna saman til að gera fyrirtæki farsælt.
25. Hvað nákvæmlega er hungur?
Þegar þráður getur ekki fengið reglulega aðgang að sameiginlegum auðlindum er hann sagður svelta. Þetta gerist þegar „gráðugir“ þræðir eða þræðir með hærri „forgang“ gera sameiginlegar auðlindir óaðgengilegar í langan tíma.
Íhugaðu hlut sem býður upp á samstillta aðferð sem oft skilar seint. Ef einn þráður kallar ítrekað á þessa aðferð, verða aðrir þræðir sem krefjast tíðs samstilltans aðgangs að sama hlutnum oft lokaðir.
Niðurstaða
Hugarflugsfundur er allt sem kerfishönnunarviðtalið felur í sér. Við höfum fjallað um algengustu kerfishönnunarviðtalsspurningarnar í þessari færslu.
Alhliða skilning á aðferðinni sem þú notar þegar þú býrð til ákveðið kerfi er mikilvægt til að standast kerfishönnunarviðtal.
Skildu eftir skilaboð