Zviri Mukati[Viga][Ratidza]
- 1. Unorevei nekugadzirwa kwehurongwa?
- 2. Ndezvipi zvinonyanya kukosha maitiro emugadziri wehurongwa?
- 3. Chii chaizvo chinonzi theorem yeCAP?
- 4. Chii chaunonzwisisa nekutakura zvinhu?
- 5. Ndeupi musiyano pakati peasynchronous programming uye parallel programming?
- 6. Ndeupi musiyano uripo pakati pekuyera nekwakatwasuka?
- 7. Chii chaizvo chaunonyatsoreva ne latency, throughput, uye system kuwanikwa?
- 8. Chii chinonzi ACID properties?
- 9. Chii chaizvo chinonzi sharding?
- 10. Chii chinonzi CDN?
- 11. Sei kushandisa CDN?
- 12. Ndeupi musiyano uripo pakati pekugovanisa nekupatsanura?
- 13. Chii chaizvo chinonzi caching?
- 14. Chii chinonzi CDN edge servers?
- 15. Ndeapi akasiyana Consistency mapatani ekugadzira system?
- 16. Unorevei nokukiya kuine tariro?
- 17. Unorevei chaizvo kana uchiti “sarudzo yemutungamiri”?
- 18. Ndeipi nzira yako yekugadzira TinyURL-yakafanana URL yekupfupisa sevhisi?
- 19. Ndeipi nzira yako yekugadzira twitter?
- 20. Gadzira iyo newsfeed system ye Facebook
- 21. Chii chinonzi BASE pfuma yehurongwa?
- 22. Chii chinonzi Load Bancing ne IP Kero Affinity Technique?
- 23. Chii chaizvo chiri Cache Replacement (kana Eviction Policy) algorithms?
- 24. Iwe unorevei chaizvo nekugoverwa kwekutengeserana?
- 25. Chii chaizvo chinonzi nzara?
- mhedziso
Usati watanga, tinokurudzira kuverenga yedu gidhi rekutanga paSystem Dhizaini kuti uvandudze ruzivo rwako rwakakosha.
Paunenge uchibvunzurudza chinzvimbo chinoda ruzivo rwekugadzira system, une mukana wekutaura nezvekwako kumashure uye kuratidza kugona kwako kugadzira masisitimu akaomarara.
Paunenge uchitaura nemunhu angave mushandirwi, matauriro aunoita hunyanzvi hwako anogona kukubatsira kuratidza kuti uri mumiriri anokwanisa pachinzvimbo.
Iwe unogona kugadzirira kubvunzurudzwa kwebasa rako nekudzidza ekutanga dhizaini mazano uye kufunga nezvekuti uchapindura sei kune kubvunza nezvavo. Isu tichaenda pamusoro peimwe yakajairwa system dhizaini yekubvunzurudza mibvunzo nemhinduro mune ino positi kuti ikubatsire kugadzirira kubvunzurudza kwako kunotevera.
1. Unorevei nekugadzirwa kwehurongwa?
Maitiro ekumisikidza masisitimu maitiro anosanganisira mamodule, dhizaini, zvikamu, uye maratidziro azvo, uye data rakavakirwa pane zvakafanotemerwa maitiro anozivikanwa sedhizaini yehurongwa.
Ndiyo nzira yekutsanangura, kugadzira, nekugadzira masisitimu ekuzadzisa zvinangwa nezvinangwa zvekambani kana zvesangano. Dhizaini yeSistimu yakawanda nezvekuongorora sisitimu, ekuvaka mapatani, APIs, dhizaini mapatani, uye gluing zvese pamwe chete pane zviri pamusoro pekukodha.
2. Ndezvipi zvinonyanya kukosha maitiro emugadziri wehurongwa?
- Kubatana kwevashandisi
- Yekunze API kufona
- Offline maitiro
3. Chii chaizvo chinonzi theorem yeCAP?
Maererano neCAP (Consistency-Availability-Partition Tolerance) theorem, hurongwa hwakagoverwa haugone kuve nechokwadi cheC, A, uye P zvose panguva imwe chete. Inogona chete kupa mbiri yezvitatu zvivimbiso zvakanyanya. Ngatishandisei yakagoverwa dhatabhesi system kutibatsira kuti tinzwisise izvi.
- Consistency: Izvi zvinotsanangura kuti data inofanirwa kugara yakafanana kana dhatabhesi redhisheni rapera. Semuenzaniso, mibvunzo yese inofanirwa kudzorera mhinduro imwechete mushure mekugadzirisa dhatabhesi.
- Kuwanikwa: Iwo dhatabhesi anofanirwa kuve aripo uye achipindura nguva dzese.
- Chikamu Kushivirira: Kunyangwe kana kutaurirana kukava dambudziko, iyo dhatabhesi system inofanira kuramba ichishanda.
4. Chii chaunonzwisisa nekutakura zvinhu?
Kutakura zviyero ndiyo nzira yekuparadzira zvinobudirira traffic iri kuuya pakati peseti yebackend maseva. Aya anonzi maserver pools. Mawebhusaiti emazuva ano akavakwa kuti abate mamirioni emibvunzo kubva kune vatengi uye apindure kwavari nekukurumidza uye nekuvimbika. Mamwe maseva achadikanwa kubata izvi zvinodiwa.
Muchiitiko ichi, zvakakosha kugovera traffic yekukumbira zvakanaka pakati pesevha yega yega kudzivirira kuvaremedza. Iyo mitoro inoremedza inoshanda semupurisa wetraffic, kubvunzurudza zvikumbiro uye nekuzvifambisa pakati pemasevha aripo kuitira kuti pasave nesevha imwe inoremerwa, zvingangokanganisa kuita kweapp.
5. Ndeupi musiyano pakati peasynchronous programming uye parallel programming?
Kana iwe uchimhanyisa chero chinhu asynchronously, zvinoreva kuti haufanirwe kumirira kuti ipedze usati waenda kune chimwe chinhu. Parallelism inoreva kuitwa panguva imwe chete yemabasa mazhinji.
Paunokwanisa kutyora mabasa muzvikamu zvakasiyana zvebasa, parallelism inoshanda nemazvo. Async neCallbacks inzira (chokushandisa kana michina) yekumiririra concurrency, kureva boka remasangano anogona kutaurirana nekugovana zviwanikwa.
6. Ndeupi musiyano uripo pakati pekuyera nekwakatwasuka?
Kuwedzerwa kwemidziyo mitsva yemakomputa kunetiweki inoparadzira kugadzirisa uye kudiwa kwendangariro kune yakapararira network yemidziyo inonzi yakachinjika kuyera. Zvichingotaura, zviitiko zvitsva zvesevha zvinowedzerwa kune dziva razvino, uye mutoro wemotokari unopararira zvakanaka pakati pemidziyo iyi.
Vertical scaling inoreva pfungwa yekuwedzera simba rekombuta imwe chete nekuwedzera RAM, maCPU anoshanda, kana kutamira kumuchina mutsva une huwandu hwepamusoro. Kushanda kwesevha kunogona kuwedzerwa pasina kuda chero shanduko yepurogiramu.
7. Chii chaizvo chaunonyatsoreva ne latency, throughput, uye system kuwanikwa?
Kuita chinhu chakakosha chekugadzira sisitimu sezvo ichibatsira kukurumidza uye kuvimbika kwemasevhisi edu. Matanho matatu akanyanya kukosha ekuita ndeaya anotevera:
- Iyo nguva inotora kutumira meseji imwe chete mumamilliseconds inonzi latency.
- Huwandu hwe data rakabudirira kuendeswa kuburikidza nehurongwa mune imwe nguva yenguva inonzi inonzi throughput. Mabhiti pasekondi anoshandiswa kuiyera.
- Iyo nguva yenguva system iripo yekupindura kune mibvunzo inotsanangurwa nekuwanikwa kwayo. System Uptime / (System Uptime + Downtime) ndiyo fomula yekuiverengera.
8. Chii chinonzi ACID properties?
- Atomicity: Inovimbisa kuti shanduko yedatabase ingave yese kana hapana.
- Consistency: Nhamba dze data mudhatabhesi dzinoenderana.
- Kuzviparadzanisa nevamwe: Zvinoreva kupatsanurwa kwezviviri zvekutengeserana.
- Kugara: Dhata inochengetedzwa kunyangwe sevha ikatadza.
9. Chii chaizvo chinonzi sharding?
Sharding ndiyo nzira yekukamura hombe ine musoro dataset mumadhatabhesi mazhinji. Zvinoreva zvakare kune yakachinjika data kupatsanura nekuti iyo data ichachengetwa pamakomputa akati wandei. Nekuda kweizvozvo, dhatabhesi yakagovaniswa inogona kubata mibvunzo yakawanda kupfuura komputa imwe hombe.
10. Chii chinonzi CDN?
A content delivery network itiweki yepasi rose yemakomputa anodyidzana kupa ruzivo rweInternet nekukurumidza. Inogonesa kukurumidza kutumirwa kwezvinhu zvakaita seHTML mapeji, JavaScript mafaera, masitayera, mapikicha, uye mavhidhiyo anodiwa kurodha zvemukati zveInternet.
11. Sei kushandisa CDN?
- Kufunga nezve static zviwanikwa zvinogadzira zvakatenderedza 80% yewebhusaiti, kutora CDN kunoderedza kunetsa pane yekutanga server zvakanyanya.
- Sezvo paine chinhambwe chishoma chekufamba, ruzivo ruchapihwa nekukurumidza kune varidzi vewebhusaiti vane vashanyi vanobva kunzvimbo zhinji dzenzvimbo.
- Vashandisi veCDNs vanobatsirikawo kubva mukukwanisa kukurumidza kukwira kumusoro nekudzika mukupindura kukwira kwetraffic.
12. Ndeupi musiyano uripo pakati pekugovanisa nekupatsanura?
Dhatabhesi Sharding - Dhatabhesi sharding inzira yekugovanisa dhatabheti rimwechete mumadhatabhesi akawanda kuitira kuti richengetwe pamabasa akasiyana. Mahombe edataseti anogona kuputswa kuita madiki machunks uye kuchengetwa mune akati wandei data node, zvichiwedzera huwandu hwese hwekuchengetedza system.
Nekuparadzira iyo data pamakina mazhinji, dhatabhesi yakagovaniswa inogona kubata mibvunzo yakawanda kupfuura imwechete system.
Database Partitioning ndiyo maitiro ekukamura zvakachengetwa dhatabhesi zvinhu (matafura, indexes, uye maonero) kuita zvidimbu zvakasiyana. Kuwedzera kudzora, kuita, uye kuwanikwa, hombe dhatabhesi zvinhu zvakakamurwa.
Mune zvimwe zviitiko, kupatsanura kunogona kuvandudza kukurumidza kana uchiwana yakakamurwa data. Kupatsanura kunogona kuderedza saizi yeindekisi uye kuwedzera mukana wekutsvaga iwo anonyanya kudiwa indexes mundangariro nekuita sekoramu inotungamira muma indexes.
13. Chii chaizvo chinonzi caching?
Caching ndiyo dhizaini yekuchengeta makopi efaira munzvimbo yekuchengetera yenguva inozivikanwa secache, iyo inomhanyisa kuwana data uye inoderedza saiti latency. Chete huwandu hwe data hunogona kuchengetwa mu cache.
Nekuda kweizvozvo, kusarudza cache yekuvandudza matekiniki anonyanya kuenderana nezvinangwa zvebhizinesi kwakakosha.
14. Chii chinonzi CDN edge maseva?
Iwo maCDN maseva ayo cache zvinhu zvakatorwa kubva kune yako yekutanga server kana chengetedzo cluster anozivikanwa sepamucheto maseva. Nzvimbo yekuvapo ishoko rinowanzo shandiswa kutsanangura edge maseva (POP).
Masevha ekumucheto akaiswa paPOP. Pane iyo POP, ruzivo runogona kuchengetwa nemaseva mazhinji ekumucheto.
Iko kugona kupa zvikamu zvewebhusaiti kubva kunzvimbo dzinoverengeka kunoderedza chinhambwe pakati pemushanyi newebhu server, zvichikonzera kudzika latency. CDN edge maseva anozadzisa ichi chaicho chinangwa.
15. Ndeapi akasiyana Consistency mapatani ekugadzira system?
Chikumbiro chega chega chekuverenga chinofanira kudzoreredza data rakanyorwa nguva pfupi yapfuura, maererano neCAP theorem. Kana akawanda makopi edata achiwanikwa, kuawiriranisa kuitira kuti vatengi vagamuchire data nyowani nguva nenguva inove yakaoma. Aya anotevera ndiwo anogona kuenderana mapatani:
- Husina kusimba: Kutevera kunyora data, chikumbiro chekuverenga chinogona kana kusakwanisa kuwana iyo data yakagadziridzwa. Iyi nhanho yekugadzikana yakanakira chaiyo-nguva maapplication akadai seVoIP, vhidhiyo chat, uye multiplayer mitambo.
- Pakupedzisira kusarongeka: Kuverenga kunozopedzisira kwaona data razvino mukati memilliseconds mushure mekunge data yanyorwa. Iyo data inodzokororwa asynchronously mune iyi kesi. DNS uye email masisitimu mienzaniso yeizvi. Izvi zvinoshanda zvinobudirira mumasitimu ane kuwanikwa kwepamusoro.
- Kusimba kwakasimba: Kutevera kunyorwa kwedata, vaverengi venguva yemberi vanozoona data razvino. Iyo data inokopwa synchronously mune iyi kesi. Izvi zvinogona kucherechedzwa muRDBMS uye mafaera masisitimu, ayo akakodzera kutamisa data.
16. Unorevei nokukiya kuine tariro?
Optimistic locking inzira yaunoverenga nayo rekodhi, cherechedza nhamba yevhezheni (dzimwe nzira dzinosanganisira misi, timestamps, kana checksums/hashes), wobva watarisa kaviri kuti vhezheni yacho haina kuchinja usati wainyora zvakare.
Paunonyora rekodhi kumashure, unoshandisa vhezheni kusefa iyo update kuti uone kuti ndeyeatomu. (kureva kuti, haina kuchinjwa pakati pawakatarisa vhezheni uye paunonyora rekodhi kudhisiki) uye gadzirisa zvese kamwechete.
17. Unorevei chaizvo kana uchiti “sarudzo yemutungamiri”?
Muchirongwa chakagovaniswa chine maseva mazhinji anobatsira kuwanikwa kweapp, panogona kuve nenguva apo sevha imwe chete ine basa rekuvandudza maAPIs echitatu, sezvo maseva akawanda anogona kukonzera matambudziko pakushandisa maAPI.
Sevha iyi inozivikanwa sesevha yekutanga, uye nzira yekuisarudza inozivikanwa sesarudzo yemutungamiri. Kana sevha yemutungamiri ikakundikana muhurongwa hwakagoverwa, maseva anofanirwa kuona kutadza uye kutora mutungamiri mutsva. Kushandisa nzira yekubvumirana, iyi nzira inonyatsokodzera kuwanikwa kwepamusoro uye kushandiswa kwakasimba kwekuenderana.
18. Ndeipi nzira yako yekugadzira TinyURL-yakafanana URL yekupfupisa sevhisi?
TinyURL inoshandura URL refu kuita imwechete, yakasarudzika pfupi URL. Aya matekinoroji anogona zvakare kugamuchira pfupi URL uye kudzosera iyo yakazara URL.
Ndehupi humwe hunhu hwakakosha?
- Gadzira URL ipfupi pane yekutanga.
- Chengetedza URL yakareba woitsiva neipfupi.
- Bvumira kutungamirwazve mumaURL mapfupi.
- Ma URL mapfupi ane mazita echinyakare anotsigirwa.
- Bata mibvunzo yakawanda panguva imwe chete.
Ndezvipi zvinetso zvakapararira?
- Iwe unochengeta sei nhoroondo yekuchengetedza database?
- Chii chinoitika kana mutoro wemushandisi ukapfuura zvinotarisirwa?
- Ko kana vanhu vaviri vakashandisa imwe tsika URL?
Chimbofunga mazano anotevera:
- Hashing ipfungwa inogona kushandiswa kubatanidza maURL ekare uye matsva.
- VAMWE API inogona kushandiswa kubata kumberi-kuguma kutaurirana uye kuenzanisa mutoro unorema.
- Multithreading ipfungwa inobvumidza iwe kubata akati wandei zvikumbiro kamwechete.
- Ma URL ekutanga anochengetwa muNoSQL dhatabhesi.
19. Ndeipi nzira yako yekugadzira twitter?
Zvinodiwa Zvakapihwa:
- Kutumira matweets
- Kutevera vamwe vashandisi
- Tweet feed/newsfeed
- System iri scalable
- Inotakura nekukurumidza
- System yakavimbika
Unogona kutanga kufunga yako Twitter API dhizaini kana iwe wagadzira maitiro. Aya ndiwo maitiro aizoita:
Kutanga, tichadhirowa makiyi ekupedzisira eAPI. Heino mienzaniso mishoma:
- sendTweet(message)
- teveraMushandisi(userID)
- kusateveraMushandisi(userID)
- getFeed(peji)
Iyo dhizaini inogonesa aya maitiro anogona kubva adhirowewa kunze. Tinogona kutanga nemushandisi anotumira chikumbiro cheserver. Isu tinokwanisa kuisa mamwe maseva eAPI kuseri kwekuremedza balancer kubatsira nzira yakakura traffic traffic kuzadzisa iyo scalability chinodiwa. Tichada kuwedzera dhatabhesi kuti tichengete ma tweets edu izvozvi.
Zvakakosha kuyeuka kuti API yatinopa inofanira kunge yakakura. Kuita kuti sevhisi iyi iwedzere, tinogona kuita kuti imwe yemaseva edu eAPI iverengerwe kubva kune yakaparadzana cache yenhau yedu. Tichiri kudaro, isu tinofanirwa kushandisawo mupi wezvekudya kuchengetedza cache yedu yekudyisa inoenderana.
20. Gadzira iyo newsfeed system ye Facebook
Iyo nhau paFacebook inobvumira vashandisi kuona zviri kuitika mumakwikwi eshamwari dzavo, mapeji avanoda, uye masangano avanenge vatevera.
Ndezvipi zvimwe zvezvinhu zvakakosha?
- Gadzira nhaurwa maererano nezvakatumirwa kubva kune mamwe masisitimu anoteverwa nemushandisi.
- Mameseji, mapikicha, odhiyo, uye vhidhiyo zvese zvinogona kushandiswa muNewsfeed kutumira.
- Nenguva-chaiyo, wedzera zvinyowani kunhau yemushandisi.
Ndedzipi dzimwe dzenyaya dzinonyanyozivikanwa?
- Ko kana iyo positi nyowani ikatora nguva yakareba kuti ioneke munhau feed?
- Iyo algorithm inogona kubata spike mune mushandisi chiitiko?
- Ndezvipi zvinyorwa zvinofanirwa kutanga kuratidzwa munhau feed?
Chimbofunga mazano anotevera:
- Ongorora maitiro e fanout ekugovera zvinyorwa kune vateveri.
- Ongorora kuti sharding inogona kushandiswa sei kubata nemazvo mitoro yevashandisi.
- Zvekudya zvemushandisi hazvifanirwe kudzokororwa mumasevha akawanda. Sharding inogona panzvimbo pacho kuitwa zvichibva pane maID ID.
21. Chii chinonzi BASE pfuma yehurongwa?
Iwo maBASE maficha anowanikwa muNoSQL dhatabhesi achangobva kubuda. A BASE system haipe kuenderana, maererano neCAP theorem. Iri ishoko rakagadzirwa rinoenderana neCAP theorem inotevera pfuma yehurongwa:
- Izwi rekuti "chaizvo zviripo" zvinoreva kuti system yacho ichave iripo nguva dzese.
- Chimiro chakapfava chinoreva kuti mamiriro ehurongwa anogona kusiyana nekufamba kwenguva, kunyangwe pasina chinongedzo chinopihwa. Izvi zvinonyanya kukonzerwa nekuenderana kweiyo modhi.
- Tichifunga kuti iyo sisitimu haigamuchire mapindiro panguva iyoyo, pakupedzisira kuenderana zvinoreva kuti sisitimu inozoenderana nekufamba kwenguva.
22. Chii chinonzi Load Bancing ne IP Kero Affinity Technique?
Imwe nzira yakakurumbira yekuyeresa mutoro ndeye IP kero affinity. Iyo mutengi IP kero yakabatana neserver node mune iyi nzira. Imwe sevha node inobata zvese zvikumbiro kubva kumutengi IP kero.
Iyi nzira iri nyore kuita sezvo IP kero inogara ichiwanikwa muHTTP yekukumbira musoro uye hapana mamwe marongero anodiwa. Kana vatengi vako vangangoita makuki akavharwa, iyi fomu yekuyeresa mutoro inogona kubatsira.
23. Chii chaizvo chiri Cache Replacement (kana Eviction Policy) algorithms?
Cache algorithms (inozivikanwawo se cache replacement algorithms, cache replacement policy, kana cache eviction policy) ndiwo mirairo ye optimization, kana algorithms, iyo purogiramu yekombuta kana hardware-inochengetwa chimiro inogona kushandisa kubata cache yedata yakachengetwa pakombuta.
Caching inowedzera kukurumidza nekuchengetedza ichangobva kushandiswa kana inowanzowanikwa data munzvimbo dzekurangarira dzinokurumidza kana kudhura kuwana pane zvechinyakare ndangariro kuchengetedza. Kana iyo cache yakazara, iyo algorithm inofanirwa kusarudza kuti ndezvipi zvinhu zvekubvisa kuitira kugadzira nzvimbo kune zvitsva.
24. Iwe unorevei chaizvo nekugoverwa kwekutengeserana?
A distributed transaction ndeye chero mamiriro ezvinhu umo chiitiko chimwe chete chinokonzeresa kuchinjwa kwemaviri kana anopfuura akasiyana masosi edata asingakwanisi kuitwa atomu.
Zvinova zvakanyanya kuomarara munyika yemicroservices sezvo sevhisi yega yega chikamu chebasa, uye kazhinji yenguva masevhisi mazhinji anofanirwa kushandirapamwe kuita kuti bhizinesi ribudirire.
25. Chii chaizvo chinonzi nzara?
Kana shinda isingakwanise kuwana nguva dzose kuwana zviwanikwa zvakagovaniswa, inonzi iri kufa nenzara. Izvi zvinoitika kana shinda dze “makaro” kana shinda dzine “chinonyanya kukosha” dzichiita kuti zviwanikwa zvisawanike kwenguva yakareba.
Funga nezvechinhu chinopa nzira yakawiriraniswa inogara ichidzoka nguva yapera. Kana shinda imwe ichiramba ichidaidza nzira iyi, dzimwe shinda dzinoda kuwiriraniswa nguva nenguva kuchinhu chimwe chete dzinowanzovharwa.
mhedziso
Chikamu chepfungwa ndicho chese chinosanganisirwa nehurongwa hwekugadzira dhizaini. Isu takagadzirisa yakajairika System Dhizaini mibvunzo yekubvunzurudza mune ino post.
Kunzwisisa kwakadzama kwenzira yauri kutora paunenge uchigadzira yakananga sisitimu kwakakosha kupasa kubvunzurudza kweSystem Design.
Leave a Reply