M'ndandanda wazopezekamo[Bisani][Show]
- 1. Mukutanthauza chiyani ponena za dongosolo?
- 2. Ndi zinthu ziti zofunika kwambiri za wopanga makina?
- 3. Kodi chiphunzitso cha CAP ndi chiyani kwenikweni?
- 4. Mumamvetsetsa chiyani potengera kusanja katundu?
- 5. Kodi pali kusiyana kotani pakati pa ma asynchronous programming ndi parallel programming?
- 6. Kodi pali kusiyana kotani pakati pa makulitsidwe opingasa ndi ofukula?
- 7. Kodi kwenikweni mukutanthauza chiyani ponena za latency, throughput, and system kupezeka?
- 8. Kodi ma ACID ndi chiyani?
- 9. Kodi sharding ndi chiyani kwenikweni?
- 10. CDN ndi chiyani?
- 11. Chifukwa chiyani mugwiritse ntchito CDN?
- 12. Kodi pali kusiyana kotani pakati pa kugawa ndi kugawa?
- 13. Kodi caching kwenikweni ndi chiyani?
- 14. Kodi ma seva amtundu wa CDN ndi chiyani?
- 15. Kodi mitundu yosiyanasiyana ya Consistency pakupanga dongosolo ndi iti?
- 16. Kodi mukutanthauza chiyani ponena za kutseka mwachiyembekezo?
- 17. Kodi mukutanthauza chiyani kwenikweni ponena za “kusankhidwa kwa atsogoleri”?
- 18. Kodi njira yanu ndi yotani pakupanga ntchito yofupikitsa ya TinyURL ngati URL?
- 19. Kodi njira yanu yopangira twitter ndi yotani?
- 20. Pangani dongosolo lazankhani za Facebook
- 21. Kodi katundu wa BASE wa dongosolo ndi chiyani?
- 22. Kodi Kuyimitsa Katundu Ndi Chiyani Ndi Njira Yothandizira Adilesi Ya IP?
- 23. Kodi ma aligorivimu a Cache Replacement (kapena Eviction Policy) ndi ati?
- 24. Kodi kwenikweni mukutanthauza chiyani ponena za kugawa?
- 25. Kodi njala ndi chiyani kwenikweni?
- Kutsiliza
Musanayambe, timalimbikitsa kuwerenga zathu kalozera woyamba pa System Design kuti mutsitsimutse chidziwitso chanu choyambirira.
Mukafunsana ndi udindo womwe umafunikira chidziwitso cha kapangidwe kake, mumakhala ndi mwayi wolankhula za mbiri yanu ndikuwonetsa kuthekera kwanu kopanga machitidwe ovuta.
Mukamalankhula ndi omwe angakhale akulemba ntchito, momwe mumafotokozera luso lanu lingakuthandizeni kusonyeza kuti ndinu woyenera pa udindowo.
Mutha kukonzekera kuyankhulana kwanu pantchito pophunzira malingaliro oyambira ndikuganizira momwe mungayankhire mafunso okhudza iwo. Tikambirana mafunso ndi mayankho a dongosolo la dongosolo lino kuti akuthandizeni kukonzekera kuyankhulana kwanu kotsatira.
1. Mukutanthauza chiyani ponena za dongosolo?
Njira yokhazikitsira mawonekedwe amachitidwe kuphatikiza ma module, kapangidwe kake, zigawo, ndi mawonekedwe awo, ndi deta yotengera zomwe zidakonzedweratu imadziwika kuti kamangidwe kadongosolo.
Ndi njira yofotokozera, kupanga, ndi kupanga machitidwe kuti akwaniritse zolinga ndi zolinga za kampani kapena bungwe. Mapangidwe adongosolo amakhudzanso kusanthula kwamakina, kamangidwe kake, ma API, mapangidwe apangidwe, ndikumangirira zonse palimodzi kuposa momwe zimakhalira polemba.
2. Ndi zinthu ziti zofunika kwambiri za wopanga makina?
- Kuyanjana kwa ogwiritsa ntchito
- Kuyimba kwa API yakunja
- Njira zopanda intaneti
3. Kodi chiphunzitso cha CAP ndi chiyani kwenikweni?
Malinga ndi chiphunzitso cha CAP (Consistency-Availability-Partition Tolerance), dongosolo logawidwa silingatsimikizire C, A, ndi P zonse panthawi imodzi. Itha kungopereka zitsimikiziro ziwiri mwa zitatuzo kwambiri. Tiyeni tigwiritse ntchito dongosolo la database logawidwa kuti litithandize kumvetsetsa izi.
- Kusasinthasintha: Izi zikutanthawuza kuti deta iyenera kukhala yosasinthasintha pokhapokha ntchito ya database ikamalizidwa. Mwachitsanzo, mafunso onse ayenera kubweza yankho lomwelo pambuyo pakusintha kwa database.
- kupezeka: Ma database akuyenera kupezeka komanso omvera nthawi zonse.
- Kulekerera Kugawikana: Ngakhale kuyankhulana kutakhala kovuta, dongosolo la database liyenera kupitiliza kugwira ntchito.
4. Mumamvetsetsa chiyani potengera kusanja katundu?
Katundu woyeserera ndi njira yobalalitsira bwino magalimoto omwe akubwera pakati pa ma seva a backend. Izi zimatchedwa maiwe a seva. Mawebusayiti amakono amapangidwa kuti athe kuthana ndi mafunso mamiliyoni ambiri kuchokera kwa makasitomala ndikuyankha mwachangu komanso modalirika. Ma seva ochulukirapo adzafunika kuthana ndi izi.
Pamenepa, ndikofunikira kugawaniza kuchuluka kwa magalimoto moyenera pakati pa seva iliyonse kuti tipewe kuwalemetsa. Cholemetsa cholemetsa chimagwira ntchito ngati wapolisi, kulowetsa zopempha ndikuziyendetsa pakati pa ma seva omwe alipo kuti pasapezeke seva imodzi yolemedwa, zomwe zitha kutsitsa magwiridwe antchito.
5. Kodi pali kusiyana kotani pakati pa ma asynchronous programming ndi parallel programming?
Mukathamanga chilichonse mosagwirizana, zikutanthauza kuti simuyenera kudikirira kuti chimalize musanapitilize china chake. Parallelism imatanthawuza kukwaniritsidwa kwa ntchito zambiri panthawi imodzi.
Mukatha kugawa ntchito m'magulu osiyanasiyana a ntchito, kufanana kumagwira ntchito bwino. Async ndi Callbacks ndi njira (chida kapena makina) kuyimira concurrency, mwachitsanzo, gulu la mabungwe omwe amatha kulumikizana ndikugawana zothandizira.
6. Kodi pali kusiyana kotani pakati pa makulitsidwe opingasa ndi ofukula?
Kuphatikizika kwa zida zatsopano zamakompyuta pamaneti omwe amafalitsa kufunikira kwa kukonza ndi kukumbukira pamaneti omwazika a zida kumatchedwa kukweza kopingasa. Mwachidule, zochitika zatsopano za seva zimawonjezedwa ku dziwe lamakono, ndipo kuchuluka kwa magalimoto kumafalikira bwino pakati pa zipangizozi.
Kukula molunjika kumatanthauza lingaliro lakukulitsa mphamvu ya kompyuta imodzi powonjezera RAM, ma CPU ogwira ntchito, kapena kusamukira ku makina atsopano okhala ndi mphamvu zambiri. Kugwira ntchito kwa seva kumatha kuonjezedwa popanda kufunikira kusintha kulikonse.
7. Kodi kwenikweni mukutanthauza chiyani ponena za latency, throughput, and system kupezeka?
Kugwira ntchito ndi gawo lofunikira pamapangidwe adongosolo chifukwa kumathandizira kuthamanga ndi kudalirika kwa ntchito zathu. Njira zitatu zofunika kwambiri zogwirira ntchito ndi izi:
- Nthawi yomwe imafunika kuti upereke uthenga umodzi mu milliseconds imatchedwa latency.
- Kuchuluka kwa deta yomwe yasamutsidwa bwino kudzera mu dongosolo mu nthawi inayake imatchedwa throughput. Ma bits pa sekondi amagwiritsidwa ntchito kuyeza.
- Kuchuluka kwa nthawi yomwe dongosolo limapezeka kuti liyankhe mafunso limatanthauzidwa ndi kupezeka kwake. System Uptime / (System Uptime+Downtime) ndiye njira yowerengera.
8. Kodi ma ACID ndi chiyani?
- Atomicity: Imatsimikizira kuti kusintha kwa database ndi zonse kapena ayi.
- Kusasinthasintha: Miyezo ya data mu database ndiyofanana.
- Kudzipatula: Kutanthauza kulekanitsa malonda awiri.
- Kukhalitsa: Deta imasungidwa ngakhale seva italephera.
9. Kodi sharding ndi chiyani kwenikweni?
Sharding ndi njira yogawanitsa deta yayikulu yomveka muzosunga zambiri. Amatanthauzanso yopingasa deta kugawanika chifukwa deta adzasungidwa angapo makompyuta. Zotsatira zake, database yogawana imatha kuthana ndi mafunso ambiri kuposa kompyuta yayikulu imodzi.
10. CDN ndi chiyani?
Netiweki yotumizira zinthu ndi makina apakompyuta apadziko lonse lapansi omwe amalumikizana kuti apereke zambiri zapaintaneti mwachangu. Imathandizira kutumiza mwachangu zinthu monga masamba a HTML, mafayilo a JavaScript, masitayelo, zithunzi, ndi makanema omwe ndi ofunikira kuti alowetse zomwe zili pa intaneti.
11. Chifukwa chiyani mugwiritse ntchito CDN?
- Poganizira zazinthu zosasunthika zimapanga pafupifupi 80% yatsamba lawebusayiti, kugwiritsa ntchito CDN kumachepetsa kupsinjika kwa seva yoyambira kwambiri.
- Popeza pali mtunda wocheperako woyenda, zambiri zidzaperekedwa mwachangu kwa eni mawebusayiti omwe ali ndi alendo ochokera kumadera ambiri.
- Ogwiritsa ntchito ma CDN amapindulanso ndi kuthekera kokwera ndi kutsika mwachangu poyankha kuchuluka kwa magalimoto.
12. Kodi pali kusiyana kotani pakati pa kugawa ndi kugawa?
Database Sharding - Database sharding ndi njira yogawanitsa deta imodzi m'madatabase ambiri kuti isungidwe kumalo osiyanasiyana. Zolemba zazikuluzikulu zitha kugawidwa m'magulu ang'onoang'ono ndikusungidwa m'malo angapo a data, ndikuwonjezera mphamvu yosungira yonse yadongosolo.
Pofalitsa deta pamakina ambiri, deta yogawana nawo imatha kuthana ndi mafunso ambiri kuposa dongosolo limodzi.
Database Partitioning ndi njira yogawa zinthu zomwe zasungidwa (matebulo, ma index, ndi malingaliro) m'zidutswa zosiyana. Kuti muwonjezere kuwongolera, magwiridwe antchito, ndi kupezeka, zinthu zazikulu za database zimagawidwa.
Nthawi zina, kugawa kungawongolere liwiro mukapeza data yogawa. Kugawa kumatha kuchepetsa kukula kwa index ndikuwonjezera mwayi wopeza ma index omwe amafunikira kwambiri pamtima pochita ngati gawo lotsogola pama index.
13. Kodi caching kwenikweni ndi chiyani?
Caching ndi njira yosungiramo mafayilo pamalo osungirako osakhalitsa omwe amadziwika kuti cache, omwe amafulumizitsa kupeza deta ndikuchepetsa kuchedwa kwa malo. Kuchuluka kwa deta kokha kungasungidwe mu cache.
Zotsatira zake, kudziwa njira zosinthira cache zomwe zili zoyenera kwambiri pazolinga zabizinesi ndizofunikira.
14. Kodi ma seva amtundu wa CDN ndi chiyani?
Ma seva a CDN omwe amasungidwa kuchokera ku seva yanu yoyambira kapena gulu losungirako amadziwika kuti ma seva am'mphepete. Mfundo ya kukhalapo ndi mawu omwe amagwiritsidwa ntchito mobwerezabwereza kufotokoza ma seva am'mphepete (POP).
Ma seva am'mphepete ali pa POP. Pa POP imeneyo, zambiri zitha kusungidwa ndi ma seva am'mphepete ambiri.
Kutha kupereka magawo a tsamba la webusayiti kuchokera kumalo angapo kumachepetsa mtunda pakati pa mlendo ndi seva yapaintaneti, zomwe zimapangitsa kuti pakhale kuchedwa kochepa. Ma seva am'mphepete mwa CDN amakwaniritsa cholinga chake.
15. Kodi mitundu yosiyanasiyana ya Consistency pakupanga dongosolo ndi iti?
Pempho lililonse lowerengedwa liyenera kupezanso zomwe zalembedwa posachedwa, malinga ndi chiphunzitso cha CAP. Makope ambiri akapezeka, kulunzanitsa kuti makasitomala alandire deta yatsopano mosalekeza kumakhala kovuta. Zotsatirazi ndizomwe zingatheke kusasinthasintha:
- Kusasinthika kofooka: Kutsatira kulembedwa kwa data, pempho lowerengedwa litha kapena silingathe kupeza zomwe zasinthidwa. Kukhazikika kumeneku ndikoyenera kugwiritsa ntchito nthawi yeniyeni monga VoIP, macheza amakanema, ndi masewera amasewera ambiri.
- Kusasinthika kwapatsogolo: Kuwerenga kudzawona zomwe zachitika posachedwa kwambiri mkati mwa ma milliseconds deta ikalembedwa. Zambiri zimabwerezedwa mwachisawawa pankhaniyi. DNS ndi maimelo machitidwe ndi zitsanzo za izi. Izi zimagwira ntchito bwino mu machitidwe omwe ali ndi kupezeka kwakukulu.
- Kusasinthika kwamphamvu: Pambuyo polemba deta, owerenga amtsogolo adzawona zomwe zachitika posachedwa. Deta imakopedwa mogwirizana munkhaniyi. Izi zitha kuwonedwa mu RDBMS ndi mafayilo amafayilo, omwe ali oyenera kusamutsa deta.
16. Kodi mukutanthauza chiyani ponena za kutseka mwachiyembekezo?
Kutseka kwachiyembekezo ndi njira yomwe mumawerengera zolemba, onani nambala yamtundu (njira zina zimaphatikizapo masiku, masitampu anthawi, kapena ma checksums/hashes), ndiyeno onetsetsani kuti bukulo silinasinthe musanalembenso.
Mukalembanso mbiriyo, mumagwiritsa ntchito mtunduwo kusefa zosinthazo kuti muwonetsetse kuti ndi atomiki. (ie, sichinasinthidwe pakati pa nthawi yomwe mumayang'ana mtunduwo ndi pamene mulemba zolemba pa disk) ndikusintha zonse mwakamodzi.
17. Kodi mukutanthauza chiyani kwenikweni ponena za “kusankhidwa kwa atsogoleri”?
M'dongosolo logawidwa lomwe lili ndi ma seva ambiri omwe amathandizira kupezeka kwa pulogalamuyo, pakhoza kukhala nthawi yomwe seva imodzi yokha imakhala ndi udindo wokonzanso ma API a chipani chachitatu, popeza ma seva angapo amatha kuyambitsa zovuta mukamagwiritsa ntchito ma API.
Seva iyi imadziwika kuti ndi seva yoyamba, ndipo njira yosankhira imadziwika ngati chisankho cha atsogoleri. Pamene seva yotsogolera ikulephera mu dongosolo logawidwa, ma seva ayenera kuona kulephera ndikusankha mtsogoleri watsopano. Pogwiritsa ntchito njira yogwirizana, njira iyi ndi yoyenera kwambiri kupezeka kwakukulu komanso kugwiritsa ntchito kugwirizana kwamphamvu.
18. Kodi njira yanu ndi yotani pakupanga ntchito yofupikitsa ya TinyURL ngati URL?
TinyURL imasintha ulalo wautali kukhala ulalo umodzi wamfupi, wapadera. Matekinoloje awa amathanso kulandira ulalo wamfupi ndikubweza ulalo wonse.
Kodi ena mwa makhalidwe ofunika kwambiri ndi ati?
- Pangani ulalo wamfupi kuposa woyamba.
- Sungani ulalo wautali ndikusintha ndi wamfupi.
- Lolani kuti awonedwenso mwachidule cha ma URL.
- Ma URL achidule okhala ndi mayina amathandizidwa.
- Yankhani mafunso angapo nthawi imodzi.
Kodi mavuto omwe afala kwambiri ndi ati?
- Kodi mumasunga bwanji zosunga zobwezeretsera?
- Chimachitika ndi chiyani ngati kuchuluka kwa wogwiritsa ntchito kupitilira zomwe amayembekeza?
- Nanga bwanji ngati anthu awiri amagwiritsa ntchito ulalo womwewo?
Taonani mfundo zotsatirazi:
- Hashing ndi lingaliro lomwe lingagwiritsidwe ntchito kulumikiza ma URL akale ndi atsopano.
- REST API angagwiritsidwe ntchito kusamalira kulankhulana kutsogolo ndi kulinganiza katundu wolemera.
- Multithreading ndi lingaliro lomwe limakupatsani mwayi wochita zopempha zingapo nthawi imodzi.
- Ma URL oyambilira amasungidwa muzosungira za NoSQL.
19. Kodi njira yanu yopangira twitter ndi yotani?
Zofunikira:
- Kutumiza ma tweets
- Kutsatira ogwiritsa ntchito ena
- Tweet feed/newsfeed
- System ndi scalable
- Amanyamula mwachangu
- Dongosolo ndi lodalirika
Mutha kuyamba kuganizira kapangidwe kanu ka Twitter API mukakhazikitsa njira. Umu ndi momwe zingawonekere:
Kuti tiyambe, tijambula mfundo zazikuluzikulu za API. Nazi zitsanzo zingapo:
- sendTweet(uthenga)
- kutsatiraUser(userID)
- unfollowUser(userID)
- getFeed(tsamba)
Zomangamanga zomwe zithandizira izi zitha kujambulidwa. Titha kuyamba ndi wogwiritsa ntchito yemwe atumiza pempho la seva. Titha kukhazikitsa ma seva owonjezera a API kuseri kwa cholemetsa chowongolera kuti tithandizire njira zazikulu zamagalimoto kuti tikwaniritse kufunikira kwa scalability. Tifunika kuwonjezera nkhokwe kuti tisunge ma tweets athu tsopano.
Ndikofunika kukumbukira kuti API yomwe timapereka iyenera kukhala yowonjezereka. Kuti izi zitheke, titha kukhala ndi imodzi mwama seva athu a API kuti iwerengedwe kuchokera pankhokwe ina yankhani yathu. Pamene tikuchita izi, tiyeneranso kugwiritsa ntchito wopereka chakudya kuti tisunge cache yathu ya chakudya.
20. Pangani dongosolo lazankhani za Facebook
Nkhani zapa Facebook zimalola ogwiritsa ntchito kuwona zomwe zikuchitika m'magulu a anzawo, masamba omwe amakonda, ndi mabungwe omwe atsatira.
Kodi zina mwazofunikira ndi ziti?
- Pangani zotsatsa nkhani potengera zolemba zamagulu ena omwe ogwiritsa ntchito amatsata.
- Zolemba, zithunzi, zomvetsera, ndi mavidiyo angagwiritsidwe ntchito muzolemba za Newsfeed.
- Munthawi yeniyeni, onjezani zatsopano pazofalitsa za ogwiritsa ntchito.
Kodi zina mwazofala kwambiri ndi ziti?
- Nanga bwanji ngati positi yatsopanoyo itenga nthawi yayitali kuti iwonekere pazankhani?
- Kodi ma algorithm angathane ndi kuchuluka kwa zochitika za ogwiritsa ntchito?
- Ndi zolemba ziti zomwe ziyenera kuwonetsedwa koyamba muzankhani?
Taonani mfundo zotsatirazi:
- Yang'anani njira ya fanout yogawa zolemba kwa otsatira.
- Yang'anani momwe sharding ingagwiritsire ntchito moyenera kunyamula katundu wambiri.
- Zomwe wogwiritsa ntchito amadyetsa siziyenera kubwerezedwa pamaseva ambiri. Sharding imatha kuchitika potengera ma ID ogwiritsa ntchito.
21. Kodi katundu wa BASE wa dongosolo ndi chiyani?
Zinthu za BASE zili ponseponse muzolemba za NoSQL zomwe zangotuluka kumene. Machitidwe a BASE sapereka kusinthasintha, malinga ndi chiphunzitso cha CAP. Ichi ndi chidule chopangidwa chomwe chimafanana ndi CAP theorem yotsatira katundu wadongosolo:
- Mawu akuti "opezeka" amatanthauza kuti dongosololi lidzakhalapo nthawi zonse.
- Kufewa kumatanthawuza kuti dongosolo la dongosolo likhoza kusinthasintha pakapita nthawi, ngakhale palibe cholowetsamo. Izi zimachitika makamaka chifukwa cha kusasinthika kwachitsanzocho.
- Popeza kuti dongosololi sililandira zolowetsamo panthawiyi, kusasinthika kumatanthauza kuti dongosololi lidzakhala logwirizana pakapita nthawi.
22. Kodi Kuyimitsa Katundu Ndi Chiyani Ndi Njira Yothandizira Adilesi Ya IP?
Njira inanso yodziwika bwino yosinthira katundu ndikulumikizana ndi adilesi ya IP. Adilesi ya IP ya kasitomala imalumikizidwa ndi node ya seva mwanjira iyi. Node imodzi ya seva imagwira zopempha zonse kuchokera ku adilesi ya IP ya kasitomala.
Njirayi ndiyosavuta kugwiritsa ntchito popeza adilesi ya IP imapezeka nthawi zonse pamutu wa pempho la HTTP ndipo palibe zosintha zina zomwe zimafunikira. Ngati makasitomala anu atha kukhala kuti ma cookie atsekedwa, njira iyi yosinthira katundu ikhoza kukhala yopindulitsa.
23. Kodi ma aligorivimu a Cache Replacement (kapena Eviction Policy) ndi ati?
Ma cache algorithms (omwe amadziwikanso kuti cache replacement algorithms, cache replacement policy, or cache eviction policy) ndi malangizo okwaniritsidwira, kapena ma algorithms, omwe pulogalamu ya pakompyuta kapena makina osungidwa ndi hardware angagwiritse ntchito kuyang'anira cache ya data yomwe yasungidwa pakompyuta.
Caching imakulitsa liwiro posunga zomwe zagwiritsidwa ntchito posachedwa kapena zomwe anthu amapeza nthawi zambiri m'magawo okumbukira omwe amakhala othamanga kapena otsika mtengo kuti afikire kuposa kusungirako kukumbukira kwachikhalidwe. Cache ikadzadza, algorithm iyenera kusankha zinthu zomwe zichotse kuti ipange malo atsopano.
24. Kodi kwenikweni mukutanthauza chiyani ponena za kugawa?
Ntchito yogawa ndi nthawi iliyonse yomwe chochitika chimodzi chimapangitsa kusintha kwa magawo awiri kapena angapo azinthu zomwe sizingachitike ndi ma atomu.
Zimakhala zovuta kwambiri padziko lapansi la ma microservices popeza ntchito iliyonse ndi gawo la ntchito, ndipo nthawi zambiri mautumiki ambiri amayenera kugwirizana kuti bizinesi ikhale yopambana.
25. Kodi njala ndi chiyani kwenikweni?
Pamene ulusi sungathe kupeza nthawi zonse kuzinthu zomwe zimagawidwa, zimanenedwa kuti zikusowa njala. Izi zimachitika pamene ulusi "wadyera" kapena ulusi wokhala ndi "zotsogola" zazikulu zimapangitsa kuti zinthu zomwe zimagawidwa zikhale zosafikirika kwa nthawi yayitali.
Ganizirani za chinthu chomwe chimapereka njira yolumikizira yomwe imabwerera mochedwa. Ngati ulusi umodzi ukaitana mobwerezabwereza njira iyi, ulusi wina womwe umafuna kulumikizana pafupipafupi ndi chinthu chomwecho nthawi zambiri umatsekeka.
Kutsiliza
Kukambirana mozama ndizomwe kuyankhulana kwadongosolo kumaphatikizapo. Tayankhapo mafunso ofunsidwa kawirikawiri a System Design mu positi iyi.
Kumvetsetsa mwatsatanetsatane njira yomwe mukugwiritsa ntchito popanga dongosolo linalake ndikofunikira kuti mudutse kuyankhulana kwa System Design.
Siyani Mumakonda