Tebulu ọdịnaya[Zoo][Gosi]
Nri Instagram bụ ikpo okwu maka ịkekọrịta na jikọọ na ndị mmadụ na ihe ndị dị gị mkpa. Mgbe imepere Instagram ma ọ bụ megharịa ndepụta gị, foto na vidiyo anyị chere na ị ga-enwe mmasị ga-egosi n'elu.
Ihe ntanetị akụkọ bụ mkpokọta nke ihe nwere ederede, onyonyo, ma ọ bụ vidiyo nke ụlọ ọrụ ndị ọzọ mepụtara n'ime sistemụ a chọrọ ka ị gụọ. Ọ na-agbanwe mgbe niile, ebe otu ndị ọzọ na-eme ọkwa ọhụrụ.
Na post a, anyị ga-eleba anya na nhazi usoro nke nri Instagram. Ya mere, ka anyị malite.
1. Ihe choro
Mkpa ọrụ
- Emepụtara ndepụta ozi onye ọrụ site na posts sitere na ụlọ ọrụ ndị ọzọ na sistemụ nke onye ọrụ sorola ma ọ bụ nwee mmasị na ya.
- Enwere ike ịhụ ederede, foto na vidiyo na posts.
- Ekwesịrị imelite ndepụta akụkọ onye ọrụ site na ntinye ọhụrụ nke ndị ọzọ mepụtara.
Ngosipụta anaghị arụ ọrụ
- Ịmepụta ndepụta akụkọ kwesịrị ime na ozugbo. Onye ọrụ njedebe kwesịrị ịnwe naanị sekọnd iri na abụọ nke igbu oge.
- Itinye ọkwa ọhụrụ: Ọ ga-ewe ihe karịrị sekọn 5 maka ọkwa ọhụrụ ka ọ pụta na arịrịọ ndepụta akụkọ mgbe etinyere ya na sistemụ.
2. Atụmatụ ike
- Ka ọ dị na Machị 2021, ọnụ ọgụgụ ndị bi n'ụwa bụ naanị ijeri mmadụ 7.8. Ọ na-egosi na 21% nke ndị bi n'ụwa bụ Facebook DAU (Dayly Active User) na 32% bụ Facebook MAU (Monthly Active User) (Monthly Active User). Nke ahụ dị ịtụnanya.
- Ka anyị mee ka sistemụ anyị na-arụ nwere 1 ijeri DAU iji mee ka ihe dị mfe.
- Were ya na mmadụ na-eso mmadụ 500 ma ọ bụ azụmaahịa na Facebook. Enwere ike were otu ma ọ bụ ibe dị ka ihe.
Atụmatụ okporo ụzọ
Were ya na otu onye ọrụ na-ebudata ndepụta akụkọ ugboro 10 kwa ụbọchị na nkezi. Yabụ na ọ bụ ihe dịka 116K QPS na arịrịọ 1e10 kwa ụbọchị.
Atụmatụ Nchekwa
Were ya na anyị na-edobe posts 500 site na ndepụta akụkọ onye ọrụ ọ bụla na ebe nchekwa na nkezi maka iweghachite ngwa ngwa, na post ọ bụla bụ 1KB n'ogo. Yabụ 500 KB maka onye ọrụ, 500 TB maka DAU niile, yana kọmputa 5000 nwere 100 GB Ram nke ọ bụla.
3. API maka Sistemụ
userId (GUID): onye ọrụ a na-ebubata ndepụta akụkọ ya.
Ogige ndị a dị na oke nhọrọ nhọrọ:
- afterPostId (GUID): nweta ndepụta akụkọ site na post na-eso nke a. Ọ bụrụ na akọwapụtaghị ya, nweta akwụkwọ ozi kacha ọhụrụ.
- gụọ (ọnụọgụ): ọnụ ọgụgụ kacha nke posts nke arịrịọ ọ bụla nwere ike ịlaghachi. Azụ azụ na-esetịpụ ọnụọgụ kacha nke ndabara ma ọ bụrụ na ọ nweghị nke ewepụtara.
- excludeReplies (boolean): na-egbochi ịtinye nzaghachi na ndepụta akụkọ.
- JSON weghachiri nwere ndepụta nke ihe ndepụta ozi.
4. Ịmepụta nchekwa data
Ụlọ ọrụ
- Onye ọrụ
- entityId, aha, nkọwa na timestamp bụ mpaghara niile achọrọ.
- A chọrọ ubi ndị a: PostId, aha, ederede, authorId na timestamp.
- timestamp, url na mediaId
mmekọrịta
- Ndị ọrụ ma ọ bụ ụlọ ọrụ ndị ọzọ nwere ike iso onye ọrụ. (m:n)
- Onye edemede-Post: Ma ndị ọrụ na ụlọ ọrụ nwere ike ịmepụta posts. Were ya na ọ bụ naanị ndị ọrụ nwere ike ịmepụta Posts maka ịdị mfe. (1: n; authorId nwere ike itinye).
- A na-esonyere post ọ bụla na ụdị mgbasa ozi ụfọdụ. (1:n)
5. Nhazi ọkwa dị elu
Architecture
Azụmahịa
Mmepụta nri
Mgbe Jay rịọrọ iyi akụkọ ya, sistemụ ahụ ga-eme ihe ndị a:
- Weghachite NJ ndị mmadụ niile yana ihe Jay na-eso.
- Mkpokọta posts: nyere NJ ndị ahụ, nweta ozi kacha ọhụrụ, ewu ewu na nke dabara.
- Debe ọkwa ndị ahụ dịka mkpa na oge ha siri dị.
- Cache: chekwaa ndepụta ndị emepụtara wee ziga Jay posts 20 kacha elu.
- Mgbe Jay gụchara akwụkwọ ozi iri abụọ mbụ, a na-eziga arịrịọ ọzọ iji nweta ọkwa 20 na-esote.
Nkesa nri
Were ya na Jay na-eso Aayush na Aayush na-ebipụta ihe ọhụrụ ọ bụla. A ga-achọ ka sistemu ahụ melite ndepụta akụkọ Jay:
- Weghachite NJ nke ndị na-eso Aayush.
- Tinye akụkọ ọhụrụ: Tinye post Aayush na ọdọ mmiri ndepụta akụkọ nke ndị na-eso NJ ndị ahụ.
- Debe ọkwa ndị ahụ dịka mkpa na oge ha siri dị.
- Melite cache nke ọkwa ọkwa.
- Ekwesịrị ịgwa ndị na-eso ụzọ mgbe ebipụtara ọkwa ọhụrụ.
components
Sava webụ na-edobe njikọ ndị ọrụ.
Usoro egosiri n'elu bụ nke ihe nkesa ngwa na-eme.
Cache na nchekwa data:
- Onye ọrụ / ihe nchekwa data nwere mmekọrịta
- Ebe nchekwa data njikọ (biputere)
- Njirimara onyonyo/vidiyo: Aayush nchekwa
- metadata nchekwa data mmekọrịta
Ọrụ ahaziri onwe ya:
- Mmepụta nri
- Ịma ọkwa nke ndepụta
6. Nkọwa zuru ezu
Ọgbọ nke ndepụta
Ndị na-akwado agụpụtaghị mmejuputa iwu:
Nsogbu na mmejuputa a na-adịghị mma gụnyere:
- Ndị ọrụ nwere ọnụ ọgụgụ buru ibu nke ndị enyi / ndị na-eso ụzọ ga-ahụ nnukwu mbelata ebe ọ bụ na anyị ga-ehichapụ, jikọta, na n'ọkwá dị ukwuu nke mbipụta.
- Mgbe onye ọrụ na-ebugo ibe ha, anyị na-arụ usoro iheomume. Nke a nwere ike ịdị umengwụ ma nwee ọtụtụ latency.
- Mmelite ọkwa ọ bụla ga-ebute mmelite ndepụta maka ndị na-eso ụzọ niile maka mmelite ndụ. Nke a nwere ike bute nnukwu igbu oge na ọrụ Newsfeed Generation anyị.
Anyị nwere ike buru ụzọ wepụta usoro iheomume wee chekwaa ya na ebe nchekwa ka ịbawanye arụmọrụ.
Mmepụta na-anọghị n'ịntanetị (edepụta ihe ngosi)
Anyị nwere ike ịnwe sava raara onwe ya nye na-ekepụta ma na-echekwa akwụkwọ akụkọ ndị ọrụ na ebe nchekwa mgbe niile. Anyị nwere ike ibupụta ndepụta akụkọ sitere na ebe ewepụtara tupu oge eruo mgbe onye ọrụ chọrọ ya.
Ihe oriri ole ka ekwesịrị ịchekwa ndepụta onye ọrụ na ebe nchekwa?
Megharịa dabere na omume ojiji gị.
Anyị kwesịrị ịmere ndị ọrụ niile akwụkwọ akụkọ (ma chekwaa ya na ebe nchekwa)?
- Maka ndị na-adịghị abanyekarị.
- Ndokwa dabere na LRU bụ ụzọ dị mfe.
- Ngwọta kachasị mma bụ ịchọpụta ka ndị ọrụ si abanye. Kedu mgbe ọ bụ? Kedu ụbọchị izu ka ị na-ekwu maka ya?
Mbipụta nke ndepụta
Fanout bụ usoro iziga ndị na-eso ụzọ gị niile ozi.
Ịgụ egwu (dọrọ)
Mgbe ị rịọrọ ndepụta akụkọ, sistemụ na-enweta arịrịọ ịgụ. Fanout read na-ezigara ndị na-eso ụzọ gị niile arịrịọ ịgụ, na-arịọ ha ka ha gụọ ọdịnaya ha.
Uru:
- Usoro ederede adịghị ọnụ.
- Mgbe ị na-agụ data, ọ na-adị mfe iji usoro nchịkọta dị iche iche.
ọghọm:
- Maka onye nwere ọtụtụ ndị na-eso ụzọ, ọrụ ịgụ ihe dị oke ọnụ.
- Ndị ọrụ agaghị ahụ data ọhụrụ ruo mgbe ha dọkpụrụ ya.
- Mgbe anyị dọtara iji weta akwụkwọ nbipụta kacha ọhụrụ mgbe niile, ọ na-esiri ike ịchọta akara ngosi kwesịrị ekwesị, na ọtụtụ arịrịọ na-adọta ga-eweghachi azịza efu, na-efunahụ ihe onwunwe.
Dee ihe egwu (pịa)
A na-arịọ arịrịọ dee na sistemụ mgbe izipu ozi ọhụrụ. A na-ezigara ndị na-eso ụzọ gị niile arịrịọ a ka ha jiri fanout dee ka ha melite akwụkwọ akụkọ ha.
kwa
- Usoro ịgụ ihe adịghị ọnụ.
con
- Maka onye ọrụ nwere ọtụtụ nde ndị na-eso ụzọ, ndị dee usoro dị oke ọnụ.
Ọkwa nke nri
Kama ịtụ usoro nri n'usoro n'usoro oge, ogo algọridim nke taa na-anwakwa ikwe nkwa na a na-ebute ihe ndị nwere mkpa ka ukwuu.
- Họrọ ihe ndị nwere ike inyere gị aka ikpebi ịdị mkpa nke ihe ndepụta, dị ka ọnụọgụ nke mmasị, nkọwa na nkekọrịta, oge emelitere ihe ikpeazụ ma ọ bụrụ na akụkọ ahụ nwere foto ma ọ bụ vidiyo, na ihe ndị ọzọ.
- Gbakọọ akara ahụ dabere na njirimara.
- Jiri akara ahụ ka ọkwa ọkwa ndị ahụ.
Hazie KPI dị ka njide onye ọrụ, ego mgbasa ozi, na ihe ndị ọzọ ka ịhụ ka sistemụ ogo anyị si arụ ọrụ.
mmechi
N'agbanyeghị eziokwu na Instagram ma ọ bụ azụmahịa nne na nna ya Facebook bụ nnukwu ụlọ ọrụ, ọ nwere nghọta ka mma nhazi usoro.
Agbalịrị m ike m iji nye gị nchịkọta ọkwa dị elu nke ntanetịime Instagram.
Enwere m olileanya na ọ bara uru na ị ga-eji ya mee ihe nke ọma.
Nkume a-aza