Teburin Abubuwan Ciki[Boye][Nuna]
Ciyarwar Instagram dandamali ne don rabawa da haɗin kai tare da mutane da abubuwan da suka shafe ku. Lokacin da kuka buɗe Instagram ko sabunta abincinku, hotuna da bidiyoyin da muke tsammanin za ku yi sha'awar za su nuna zuwa sama.
Ciyarwar labarai tarin abubuwa ne masu ɗauke da rubutu, hotuna, ko bidiyoyi waɗanda wasu ƙungiyoyi suka ƙirƙira a cikin tsarin waɗanda aka yi niyya don karantawa. Kullum yana canzawa, yayin da sauran kungiyoyi ke yin sabbin posts.
A cikin wannan sakon, za mu kalli tsarin tsarin ciyarwar Instagram. Don haka, bari mu fara.
1. Bukatun
Larurar aiki
- An ƙirƙiri ciyarwar labarai ta mai amfani daga posts daga wasu ƙungiyoyi a cikin tsarin da mai amfani ya bi ko yake sha'awar.
- Ana iya samun rubutu, hotuna, da bidiyo a cikin posts.
- Yakamata a sabunta ciyarwar mai amfani da sabbin rubuce-rubucen da wasu suka kirkira.
Ma'auni mara aiki
- Ƙirƙirar ciyarwar labarai ya kamata ta faru a cikin ainihin lokaci. Ya kamata mai amfani na ƙarshe ya fuskanci daƙiƙa 12 na jinkiri.
- Ƙara sabon matsayi: Kada ya ɗauki fiye da daƙiƙa 5 don sabon matsayi ya bayyana a cikin buƙatun ciyarwar labarai bayan an ƙaddamar da shi zuwa tsarin.
2. Kiyasin iya aiki
- Ya zuwa Maris 2021, yawan mutanen duniya mutane biliyan 7.8 ne kawai. Ya nuna cewa kashi 21% na al'ummar duniya Facebook DAU ne (Daily Active User) kuma kashi 32% Facebook MAU ne (Masu Active User) (Monthly Active User). Abin mamaki ne.
- Ace tsarin da muke ginawa yana da DAU biliyan 1 domin a samu sauki.
- A ce mutum yana bin mutane 500 ko kasuwanci akan Facebook. Ƙungiya ko shafi ƙila a ɗauki wani abu.
Kiyasin Traffic
A ɗauka cewa mai amfani ɗaya yana saukar da ciyarwar labarai sau 10 kowace rana akan matsakaita. Don haka yana da kusan 116K QPS da buƙatun 1e10 kowace rana.
Ƙididdiga na Adanawa
A ɗauka muna kiyaye posts 500 daga ciyarwar kowane mai amfani a cikin ƙwaƙwalwar ajiya akan matsakaici don maidowa da sauri, kuma kowane matsayi yana da girman 1KB. Don haka 500 KB ga kowane mai amfani, 500 TB don duk DAUs, da kwamfutoci 5000 tare da 100 GB RAM kowace.
3. APIs don Systems
userId (GUID): mai amfani wanda ake debo ciyarwar labarai.
Ana samun filaye masu zuwa a cikin ma'aunin zaɓi na zaɓi:
- afterPostId (GUID): samun labaran labarai daga gidan da ke biyo bayan wannan. Idan ba a kayyade ba, sami sabbin sakonnin baya-bayan nan.
- ƙidaya (lambar): matsakaicin adadin saƙonnin da kowace buƙata za ta iya dawowa. Ƙarshen baya yana saita mafi girman tsoho idan babu wanda aka kawo.
- wareReplies (boolean): yana hana amsoshi saka a cikin labaran labarai.
- JSON da aka dawo ya ƙunshi jerin abubuwan ciyarwar labarai.
4. Zana Database
Abubuwan da ke ciki
- Mai amfani
- entityId, suna, kwatance, da tambarin lokaci duk filayen da ake buƙata.
- Ana buƙatar filayen masu zuwa: PostId, take, rubutu, authorId, da tambarin lokaci.
- timestamp, url, da kuma mediaId
dangantaka
- Sauran Masu amfani ko Ƙungiyoyin mai amfani na iya biye da su. (m: n)
- Mawallafi-Post: Duk masu amfani da ƙungiyoyi suna iya ƙirƙirar posts. A ɗauka cewa Masu amfani kawai za su iya ƙirƙirar Posts don sauƙi. (1: n; authorId abu ne mai haɗawa).
- Kowane matsayi yana tare da wasu nau'i na kafofin watsa labarai. (1:n)
5. Babban Matsayin Zane
Architecture
Ayyukan aiki
Samar da abinci
Lokacin da Jay ta nemi rafin labaranta, tsarin zai yi haka:
- A dawo da ID na duk mutane da abubuwan da Jay ke bi.
- Takaddun posts: da aka ba wa waɗannan ID ɗin, sami mafi kwanan nan, shahararru, kuma abubuwan da suka dace.
- Sanya matsayi bisa ga dacewarsu da lokacinsu.
- Cache: ajiye abubuwan da aka ƙirƙira kuma aika Jay manyan posts 20.
- Lokacin da Jay ya gama karanta rubuce-rubuce 20 na farko, ana aika wani buƙatun don samun posts 20 na gaba.
Rarraba ciyarwa
A ɗauka cewa Jay yana bin Aayush kuma Aayush yana aika wani sabon abu. Ana buƙatar sabunta ciyarwar labarai ta Jay ta tsarin:
- A dawo da ID na mabiyan Aayush.
- Ƙara sabbin labarai: Ƙara post ɗin Aayush zuwa wuraren ciyarwar labarai na mabiyan ID ɗin.
- Sanya matsayi bisa ga dacewarsu da lokacinsu.
- Sabunta cache na matsayi.
- Ya kamata a sanar da masu bi lokacin da aka buga sabbin posts.
Aka gyara
Sabar yanar gizo tana kiyaye haɗin masu amfani.
Hanyoyin da aka nuna a sama ana aiwatar da su ta uwar garken aikace-aikacen.
Cache da database:
- Dangantaka mai amfani / mahallin bayanai
- Bayanan alaƙa (post)
- Siffar Hoto/bidiyo: Aayush Storge
- Membobin bayanai na dangantaka
Keɓaɓɓen sabis:
- Samar da abinci
- Sanarwa na ciyarwa
6. Cikakken Zane
Generation na ciyarwa
Magoya baya karanta aiwatar da butulci:
Matsalolin da wannan aiwatar da rashin hankali sun haɗa da:
- Masu amfani tare da ɗimbin abokai/mabiya za su lura da raguwar raguwar mahimmanci tunda dole ne mu tacewa, haɗawa, da matsayi mai yawa na aikawa.
- Lokacin da mai amfani ya loda shafin su, muna gina tsarin lokaci. Wannan na iya zama sluggish kuma yana da yawan latency.
- Kowane sabunta matsayi zai haifar da sabuntawar ciyarwa ga duk masu bi don sabuntawa kai tsaye. Wannan na iya haifar da babban jinkiri a cikin Sabis ɗin Generation na Newsfeed.
Za mu iya ƙirƙira ƙididdiga na lokaci da adana shi a cikin ƙwaƙwalwar ajiya don haɓaka aiki.
Ƙirƙirar Yanar Gizo (Rubutun Faɗa)
Za mu iya samun keɓaɓɓun sabar da ke ƙirƙira da adana bayanan masu amfani a koyaushe. Za mu iya kawai isar da ciyarwar labarai daga wurin da aka riga aka ƙirƙira, wurin da aka adana a duk lokacin da mai amfani ke so.
Abubuwan ciyarwa nawa yakamata a adana abincin mai amfani a cikin ƙwaƙwalwar ajiya?
Daidaita dangane da halayen amfanin ku.
Ya kamata mu yi saƙon labarai ga duk masu amfani (kuma mu adana shi cikin ƙwaƙwalwar ajiya)?
- Ga mutanen da ba sa shiga sosai.
- Caching tushen LRU hanya ce mai sauƙi.
- Mafi kyawun bayani shine gano yadda masu amfani ke shiga. Yaushe ne? Wadanne ranakun mako kuke magana akai?
Buga abinci
Fanout shine tsarin aika sako ga duk mabiyan ku.
Karatun fanout(ja)
Lokacin da kuke buƙatar ciyarwar labarai, tsarin yana karɓar buƙatar karantawa. Karatun Fanout yana aika buƙatun karantawa ga duk mabiyan ku, yana neman su karanta abun cikin su.
ribobi:
- Hanyar rubutun ba ta da tsada.
- Lokacin karanta bayanai, yana da sauƙi don amfani da algorithms na tarawa iri-iri.
fursunoni:
- Ga mutumin da ke da mabiya da yawa, aikin karantawa yana da tsada sosai.
- Masu amfani ba za su ga sabbin bayanai ba har sai sun ja shi.
- Lokacin da muka ja don ɗauko sabbin rubuce-rubucen kwanan nan akai-akai, yana da wahala a sami ingantattun jagororin ja, kuma yawancin buƙatun ja za su dawo da amsar fanko, suna ɓata albarkatu.
Rubutun Fanout (turawa)
Ana yin buƙatar rubutawa zuwa tsarin lokacin da kuka aika sabon matsayi. Ana aika buƙatar rubutawa ga duk mabiyan ku don sabunta labaransu ta amfani da rubutaccen fanout.
Pro
- Tsarin karatun ba shi da tsada.
con
- Ga mai amfani da miliyoyin mabiya, da rubuta hanya tana da tsada sosai.
Matsayin Ciyarwa
Maimakon kawai yin odar ciyarwar akan lokaci, ƙididdiga na yau kuma suna ƙoƙarin tabbatar da cewa an fifita abubuwan da suka fi dacewa.
- Zaɓi abubuwan da za su iya taimaka maka yanke shawarar dacewar abun ciyarwa, kamar adadin abubuwan so, sharhi, da rabawa, lokacin da aka sabunta abun na ƙarshe idan labarin ya ƙunshi hotuna ko bidiyoyi, da sauransu.
- Yi ƙididdige maki bisa ga halaye.
- Yi amfani da maki don sanya matsayi.
Saita KPIs kamar riƙe mai amfani, tallan talla, da sauransu don ganin yadda tsarin martabarmu yake da tasiri.
Kammalawa
Duk da cewa Instagram ko kasuwancin sa na Facebook babban kamfani ne, yana da kyakkyawar fahimta tsarin tsarin.
Na yi iya ƙoƙarina don samar muku da taƙaitaccen matsayi na ciyarwar Instagram.
Ina fatan ya taimaka kuma za ku yi amfani da shi da kyau.
Leave a Reply