M'ndandanda wazopezekamo[Bisani][Show]
Instagram Feed ndi nsanja yogawana ndikulumikizana ndi anthu ndi zinthu zomwe zili zofunika kwa inu. Mukatsegula Instagram kapena kutsitsimutsanso chakudya chanu, zithunzi ndi makanema omwe tikuganiza kuti mungasangalale nawo amawonekera pamwamba.
Nkhani zankhani ndi mndandanda wazinthu zomwe zili ndi mawu, zithunzi, kapena makanema opangidwa ndi mabungwe ena mudongosolo lomwe mukufuna kuti muwerenge. Zikusintha nthawi zonse, pomwe mabungwe ena akupanga zolemba zatsopano.
Mu positi iyi, tiwona mwatsatanetsatane kapangidwe kake ka chakudya cha Instagram. Kotero, tiyeni tiyambe.
1. Zofunikira
Kufunika kogwira ntchito
- Nkhani za wogwiritsa ntchito zimapangidwa kuchokera kuzinthu zina zamakina omwe wogwiritsa ntchito watsatira kapena akufuna.
- Zolemba, zithunzi, ndi makanema zitha kupezeka m'mapositi.
- Nkhani za wogwiritsa ntchito ziyenera kusinthidwa ndi zolemba zatsopano zopangidwa ndi ena.
Zosagwira ntchito
- Kupanga ma feed a nkhani kuyenera kuchitika munthawi yeniyeni. Wogwiritsa ntchito akuyenera kuchedwa kwa masekondi 12 okha.
- Kuyika positi yatsopano: Siziyenera kutenga masekondi osapitilira 5 kuti positi yatsopano iwonekere mu pempho lazakudya pambuyo potumizidwa kudongosolo.
2. Kuyerekeza kwa Mphamvu
- Pofika pa Marichi 2021, anthu padziko lonse lapansi ndi anthu 7.8 biliyoni okha. Zikusonyeza kuti 21% ya anthu padziko lapansi ndi Facebook DAU (Daily Active User) ndipo 32% ndi Facebook MAU (Monthly Active User) (Monthly Active User). Zimenezo n’zodabwitsa.
- Tiyerekeze kuti dongosolo lomwe tikupanga lili ndi 1 biliyoni ya DAU kuti zinthu zisakhale zosavuta.
- Tangoganizani kuti munthu amatsatira anthu 500 kapena mabizinesi pa Facebook. Gulu kapena tsamba litha kuwonedwa ngati bungwe.
Magalimoto Oyerekeza
Tangoganizani kuti wosuta mmodzi amatsitsa chakudya chambiri ka 10 tsiku lililonse pafupifupi. Chifukwa chake ndi pafupifupi 116K QPS ndi zopempha 1e10 tsiku lililonse.
Kuyerekeza kwa Posungira
Tangoganizani kuti timasunga zolemba 500 kuchokera ku nkhani za aliyense wogwiritsa ntchito pokumbukira kuti tipezenso mwachangu, ndipo positi iliyonse ndi 1KB kukula kwake. Chifukwa chake 500 KB pa wogwiritsa ntchito, 500 TB pa ma DAU onse, ndi makompyuta 5000 okhala ndi 100 GB RAM iliyonse.
3. Ma API a Systems
userId (GUID): wogwiritsa ntchito yemwe nkhani yake ikulandidwa.
Magawo otsatirawa akupezeka muzosankha zosankhidwa:
- afterPostId (GUID): pezani nkhani kuchokera patsamba lotsatirali. Ngati sizinatchulidwe, pezani zolemba zaposachedwa kwambiri.
- count (nambala): chiwerengero chachikulu cha zolemba zomwe pempho lirilonse likhoza kubwezera. Kumbuyo kumayika nambala yopitilira malire ngati palibe yoperekedwa.
- excludeReplies (boolean): imaletsa mayankho kuti asaphatikizidwe muzankhani.
- JSON yobweranso ili ndi mndandanda wazofalitsa nkhani.
4. Kupanga Database
Mabungwe
- wosuta
- entityId, dzina, malongosoledwe, ndi sitampu yanthawi zonse ndi magawo ofunikira.
- Magawo otsatirawa ndi ofunikira: PostId, mutu, mawu, authorId, ndi chidindo chanthawi.
- timestamp, url, ndi mediaId
ubale
- Ogwiritsa Ena kapena Mabungwe atha kutsatiridwa ndi wogwiritsa ntchito. (m:n)
- Wolemba-Post: Onse ogwiritsa ntchito ndi mabungwe amatha kupanga zolemba. Tangoganizani kuti Ogwiritsa ntchito okha amatha kupanga Zolemba chifukwa chosavuta. (1:n; authorId ndi yophatikizidwa).
- Cholemba chilichonse chimatsagana ndi mtundu wina wa media. (1:n)
5. Mapangidwe apamwamba
zomangamanga
Akugwira ntchito
Kupanga chakudya
Jay akapempha kuti azifalitsa nkhani, makinawa adzachita izi:
- Katengereni ma ID a anthu onse ndi zinthu zomwe Jay amatsatira.
- Gwirizanitsani ma post: mutapatsidwa ma ID, pezani ma post aposachedwa kwambiri, otchuka, ndi ofunikira.
- Sanjani zolembazo molingana ndi kufunika kwake komanso nthawi yake.
- Cache: sungani ma feed omwe adapangidwa ndikutumizira Jay zolemba 20 zapamwamba.
- Jay akamaliza kuwerenga zolemba 20 zoyambirira, pempho lina limatumizidwa kuti atenge zolemba 20.
Kugawa chakudya
Tangoganizani kuti Jay akutsatira Aayush ndikuti Aayush alemba chilichonse chatsopano. Nkhani za Jay ziyenera kusinthidwa ndi dongosolo:
- Pezaninso ma ID a otsatira Aayush.
- Onjezani zolemba zatsopano: Onjezani zolemba za Aayush pagulu lazankhani za otsatira ma ID awo.
- Sanjani zolembazo molingana ndi kufunika kwake komanso nthawi yake.
- Sinthani posungira positi.
- Otsatira ayenera kudziwitsidwa pamene zolemba zatsopano zasindikizidwa.
zigawo
Malumikizidwe a ogwiritsa ntchito amasungidwa ndi maseva apa intaneti.
Njira zomwe zasonyezedwa pamwambapa zimachitidwa ndi seva yofunsira.
Cache ndi database:
- Wogwiritsa ntchito database / bungwe
- Zogwirizana (zolemba)
- Chithunzi/kanema mawonekedwe: Aayush storge
- Relational database metadata
Ntchito zokonda makonda anu:
- Kupanga chakudya
- Chidziwitso cha ma feed
6. Mapangidwe Atsatanetsatane
Mbadwo wa chakudya
Kugwiritsa ntchito mopanda nzeru:
Mavuto ndi kukhazikitsa mosasamala uku ndi:
- Ogwiritsa ntchito omwe ali ndi abwenzi / otsatira ambiri awona kuchepa kwakukulu chifukwa tiyenera kusefa, kuphatikiza, ndikuyika kuchuluka kwa zolemba.
- Wogwiritsa ntchito akatsegula tsamba lawo, timapanga nthawi yake. Izi zitha kukhala zaulesi komanso kukhala ndi latency yambiri.
- Kusintha kulikonse kumabweretsa zosintha za feed kwa otsatira onse pazosintha zaposachedwa. Izi zitha kuchedwetsa kwambiri mu Newsfeed Generation Service yathu.
Titha kupanga kale kuwerengera nthawi ndikusunga kukumbukira kuti tiwonjezere kuchita bwino.
Kupanga Kwapaintaneti (Kulemba kwapaintaneti)
Titha kukhala ndi ma seva odzipatulira omwe nthawi zonse amapanga ndikusunga nkhani za ogwiritsa ntchito pamtima. Titha kungopereka nkhani kuchokera komwe zidapangidwa kale, zosungidwa nthawi iliyonse wogwiritsa ntchito akafuna.
Kodi chakudya cha wogwiritsa ntchito chiyenera kusungidwa mu kukumbukira zinthu zingati?
Sinthani malinga ndi momwe mumagwiritsira ntchito.
Kodi tiyenera kupanga zofalitsa nkhani kwa onse ogwiritsa ntchito (ndi kuzisunga kukumbukira)?
- Kwa anthu omwe salowa nthawi zambiri.
- LRU-based caching ndi njira yosavuta.
- Yankho labwino ndikuzindikira momwe ogwiritsa ntchito amalowera. Ndi liti? Ndi masiku ati apakati apakati omwe mukunena?
Kufalitsa chakudya
Fanout ndi njira yotumizira uthenga kwa otsatira anu onse.
Fanout read(kukoka)
Mukapempha chakudya chankhani, dongosololi limalandira pempho lowerengedwa. Fanout Read imatumiza pempho lowerengedwa kwa otsatira anu onse, kuwafunsa kuti awerenge zomwe zili.
ubwino:
- Njira yolembera ndi yotsika mtengo.
- Mukamawerenga deta, ndizosavuta kugwiritsa ntchito ma aligorivimu osiyanasiyana.
kuipa:
- Kwa munthu yemwe ali ndi otsatira ambiri, ntchito yowerengera ndiyokwera mtengo.
- Ogwiritsa sawona zatsopano mpaka atazikoka.
- Tikamakoka kuti titenge zolemba zaposachedwa pafupipafupi, zimakhala zovuta kupeza kukoka koyenera, ndipo zopempha zambiri zokoka zimatibweretsera yankho lopanda kanthu, kuwononga chuma.
Fanout kulemba (kukankha)
Pempho lolemba limapangidwa ku dongosolo mukatumiza positi yatsopano. Pempho lolemba limatumizidwa kwa otsatira anu onse kuti asinthe nkhani zawo pogwiritsa ntchito fanout.
pa
- Njira yowerengera ndiyotsika mtengo.
Con
- Kwa wogwiritsa ntchito mamiliyoni otsatira, a kulemba ndondomeko ndiyokwera mtengo kwambiri.
Udindo wa Feed
M'malo mongoyitanitsa ma feed motsatira nthawi, ma algorithms amasiku ano amayesanso kutsimikizira kuti zinthu zofunika kwambiri zimayikidwa patsogolo.
- Sankhani zinthu zomwe zingakuthandizeni kudziwa kufunika kwa chinthu chodyetsa, monga kuchuluka kwa zokonda, ndemanga, ndi zogawana, nthawi yomwe chinthucho chinasinthidwa komaliza ngati nkhaniyo ili ndi zithunzi kapena makanema, ndi zina zotero.
- Weretsani zotsatira potengera mawonekedwe.
- Gwiritsani ntchito zigoli kuti musanjire ma post.
Khazikitsani ma KPI monga kusunga kwa ogwiritsa ntchito, ndalama zotsatsa, ndi zina zotero kuti muwone momwe dongosolo lathu la masanjidwe limagwirira ntchito.
Kutsiliza
Ngakhale kuti Instagram kapena bizinesi ya makolo ake Facebook ndi kampani yayikulu, imamvetsetsa bwino dongosolo dongosolo.
Ndidayesetsa momwe ndingathere kuti ndikupatseni chidule changa chambiri pazakudya za Instagram.
Ndikukhulupirira kuti inali yothandiza ndipo mudzaigwiritsa ntchito bwino.
Siyani Mumakonda