Fizahan-takelaka[Afeno][Aseho]
Instagram Feed dia sehatra iray hizarana sy hifandraisana amin'ny olona sy ny zava-dehibe aminao. Rehefa manokatra Instagram ianao na mamelombelona ny fahanao, dia hiseho any an-tampony ireo sary sy horonan-tsary heverinay fa hahaliana anao.
Ny famahanam-baovao dia fitambaran-javatra misy lahatsoratra, sary, na horonan-tsary noforonin'ny sampana hafa ao amin'ny rafitra izay kendrena hovakianao. Miova foana izany, raha misy fikambanana hafa manao lahatsoratra vaovao.
Ato amin'ity lahatsoratra ity dia hijery akaiky ny famolavolana rafitra ny famahanan'ny Instagram isika. Noho izany, andao hanomboka.
1. Requirements
Filàna miasa
- Ny famahanam-baovaon'ny mpampiasa dia noforonina avy amin'ny lahatsoratra avy amin'ny sampana hafa ao amin'ny rafitra izay narahan'ny mpampiasa na mahaliana azy.
- Ny lahatsoratra, sary, ary horonan-tsary dia hita ao amin'ny lahatsoratra.
- Tokony havaozina miaraka amin'ireo hafatra vaovao noforonin'ny hafa ny fahana vaovaon'ny mpampiasa.
Criterion tsy miasa
- Tokony hatao amin'ny fotoana tena izy ny famoronana fahana vaovao. Ny mpampiasa farany dia tokony hiaina fahatarana 12 segondra monja.
- Fanampiana lahatsoratra vaovao: Tsy tokony hihoatra ny 5 segondra vao misy lahatsoratra vaovao hiseho amin'ny fangatahana famahanana vaovao aorian'ny fandefasana azy amin'ny rafitra.
2. Tombanana ny fahafaha-manao
- Hatramin'ny martsa 2021, 7.8 lavitrisa ny mponina eran-tany. Izany dia manondro fa ny 21% amin'ny mponina eran-tany dia Facebook DAU (Daily Active User) ary 32% dia Facebook MAU (Monthly Active User) (Monthly Active User). Mahagaga izany.
- Aoka hatao hoe manana 1 miliara DAU ny rafitra aorinay mba hanamora ny zavatra.
- Eritrereto hoe misy olona manaraka olona 500 na orinasa ao amin'ny Facebook. Vondrona na pejy iray dia azo raisina ho enti-manana.
Tombanana ny fifamoivoizana
Eritrereto hoe misy mpampiasa iray misintona ny vaovao fahana in-10 isan'andro amin'ny salanisa. Noho izany dia manodidina ny 116K QPS sy 1e10 fangatahana isan'andro.
Tombanan'ny fitahirizana
Eritrereto hoe mitazona lahatsoratra 500 avy amin'ny fahana vaovaon'ny mpampiasa tsirairay izahay ho fitadidiana amin'ny antsalany mba hamerenana haingana, ary 1KB ny haben'ny lahatsoratra tsirairay. Ka 500 KB isaky ny mpampiasa, 500 TB ho an'ny DAU rehetra, ary solosaina 5000 miaraka amin'ny 100 GB RAM avy.
3. API ho an'ny rafitra
userId (GUID): ny mpampiasa izay alaina ny vaovao.
Ireto saha manaraka ireto dia hita ao amin'ny paramètre safidy azo atao:
- afterPostId (GUID): alaivo ny vaovao avy amin'ny lahatsoratra manaraka ity. Raha tsy voalaza dia alao ny lahatsoratra farany indrindra.
- isa (isa): ny isan'ny lahatsoratra ambony indrindra azon'ny fangatahana tsirairay averina. Ny backend dia mametraka isa ambony indrindra raha tsy misy omena.
- excludeReplies (boolean): manakana ny valiny tsy ho tafiditra ao amin'ny fahana vaovao.
- Ny JSON niverina dia misy lisitry ny entana vaovao.
4. Famolavolana angon-drakitra
fikambanana
- User
- entityId, anarana, famaritana, ary timestamp dia saha ilaina avokoa.
- Ilaina ireto saha manaraka ireto: PostId, lohateny, lahatsoratra, authorId, ary timestamp.
- timestamp, url, ary mediaId
fifandraisana
- Mpampiasa hafa na sampana hafa dia azo arahin'ny mpampiasa iray. (m:n)
- Mpanoratra-Post: Samy afaka mamorona lahatsoratra ny mpampiasa sy ny sampana. Eritrereto fa ny mpampiasa ihany no afaka mamorona lahatsoratra noho ny fahatsorana. (1:n; authorId dia azo ampidirina).
- Ny lahatsoratra tsirairay dia miaraka amin'ny endrika media sasany. (1:n)
5. Famolavolana avo lenta
Architecture
Workflows
Famokarana sakafo
Rehefa mangataka ny vaovaony i Jay dia hanao izao manaraka izao ny rafitra:
- Alao ny karapanondron'ny olona rehetra sy ny zavatra arahin'i Jay.
- Lahatsoratra mitambatra: omena ireo karapanondro ireo, alao ireo lahatsoratra vao haingana, malaza ary mifandraika.
- Laharana araka ny maha-zava-dehibe azy sy ny fotoanany ny lahatsoratra.
- Cache: tehirizo ireo fahana noforonina ary alefaso i Jay ireo lahatsoratra 20 ambony.
- Rehefa vitan'i Jay ny famakiana ireo lahatsoratra 20 voalohany dia misy fangatahana hafa alefa mba hahazoana ireo lahatsoratra 20 manaraka.
Fizarana sakafo
Eritrereto hoe manaraka an'i Aayush i Jay ary mandefa zava-baovao i Aayush. Mila havaozin'ny rafitra ny vaovaon'i Jay:
- Alao ny karapanondron'ny mpanaraka an'i Aayush.
- Manampia lahatsoratra vaovao: Ampio ny lahatsoratr'i Aayush amin'ny dobo famoaham-baovaon'ireo mpanaraka ireo ID ireo.
- Laharana araka ny maha-zava-dehibe azy sy ny fotoanany ny lahatsoratra.
- Havaozy ny cache an'ny lahatsoratra laharana.
- Tokony hampahafantarina ny mpanaraka rehefa misy lahatsoratra vaovao mivoaka.
Components
Ny fifandraisan'ny mpampiasa dia tazonin'ny mpizara tranonkala.
Ny fomba fiasa voalaza etsy ambony dia ataon'ny mpizara fampiharana.
Cache sy tahiry:
- Mpampiasa / sampan-draharaham-pifandraisana
- Angon-drakitra mifandraika (post)
- Toetran'ny sary/video: Aayush storge
- Metadata angon-drakitra mifandraika
Serivisy manokana:
- Famokarana sakafo
- Fampahafantarana ny fahana
6. Famolavolana amin'ny antsipiriany
Famoronana sakafo
Fan-out mamaky fampiharana naive:
Ny olana amin'ity fampiharana diso tafahoatra ity dia ahitana:
- Ireo mpampiasa manana namana/mpanaraka marobe dia hahatsikaritra fihemorana lehibe satria tsy maintsy manasivana, manambatra ary mametraka hafatra marobe isika.
- Rehefa mameno ny pejiny ny mpampiasa iray, dia manorina ny fandaharam-potoana izahay. Mety ho malaina izany ary manana latency be dia be.
- Ny fanavaozana ny sata tsirairay dia hiteraka fanavaozam-baovao ho an'ny mpanaraka rehetra ho an'ny fanavaozana mivantana. Mety hiteraka fahatarana lehibe ao amin'ny Serivisy Generation Newsfeed izany.
Afaka mamorona mialoha ny fanisan-taona isika ary mitahiry izany ho fitadidiana mba hampitombo ny fahombiazana.
Famokarana an-tserasera (Fan-out write)
Afaka manana mpizara voatokana izay mamorona sy mitahiry tsy tapaka ny vaovaon'ny mpampiasa ho fahatsiarovana. Afaka mandefa ny vaovao avy amin'ny toerana voatahiry mialoha izahay isaky ny tian'ny mpampiasa azy.
Firy ny fahana tokony hotehirizina ao anaty fitadidiana ny sakafon'ny mpampiasa iray?
Ampifanaraho amin'ny fitondrantena ampiasainao.
Tokony hanao fampitam-baovao ho an'ny mpampiasa rehetra ve isika (ary hotehirizina ho fahatsiarovana)?
- Ho an'ny olona tsy miditra matetika.
- LRU-based caching dia fomba tsotra.
- Ny vahaolana tsara kokoa dia ny mamantatra ny fomba fidiran'ny mpampiasa. Rahoviana izany? Inona ny andro fiasana resahinao?
Famoahana ny fahana
Fanout dia dingana fandefasana hafatra ho an'ny mpanaraka anao rehetra.
Fanout mamaky (misintona)
Rehefa mangataka famahanam-baovao ianao dia mahazo fangatahana famakiana ny rafitra. Fanout read dia mandefa fangatahana famakiana ho an'ny mpanaraka anao rehetra, mangataka azy ireo hamaky ny votoatiny.
matihanina:
- Tsy lafo ny fomba fanoratana.
- Rehefa mamaky angon-drakitra dia mora kokoa ny mampiasa algorithma aggregation isan-karazany.
maharatsy ny mifampiresaka:
- Ho an'ny olona manana mpanaraka be dia be dia lafo ny fandidiana famakiana.
- Tsy hahita angon-drakitra vaovao ny mpampiasa raha tsy misintona izany.
- Rehefa misintona tsy tapaka haka ireo hafatra farany indrindra isika, dia sarotra ny mahita ny cadence fisintonana mety, ary ny ankamaroan'ny fangatahana misintona dia hamerina valiny poakaty, mandany loharanon-karena.
Fanout fanoratana (tosika)
Misy fangatahana fanoratana atao amin'ny rafitra rehefa mandefa hafatra vaovao ianao. Ny fangatahana fanoratana dia alefa any amin'ny mpanaraka anao rehetra mba hanavao ny vaovaony amin'ny alalan'ny fanout write.
Pro
- Tsy lafo ny fizotran'ny famakiana.
Con
- Ho an'ny mpampiasa manana mpanaraka an-tapitrisany, ny manoratra lafo loatra ny fomba fiasa.
Ny laharan'ny Feed
Raha tokony hanafatra ny fahana araka ny filaharany fotsiny, ny algorithm amin'izao fotoana izao dia miezaka manome antoka fa ny zavatra manan-danja kokoa no atao laharam-pahamehana.
- Mifidiana lafin-javatra izay afaka manampy anao hanapa-kevitra ny maha-zava-dehibe ny sakafo iray, toy ny isan'ny tia, ny fanehoan-kevitra, ary ny fizarana, ny fotoana nanavaozana farany ilay singa raha toa ka misy sary na horonan-tsary ilay lahatsoratra, sy ny sisa.
- Kajy ny isa mifototra amin'ny toetra.
- Ampiasao ny naoty mba hametrahana ny lahatsoratra.
Mametraha KPI toy ny fihazonana ny mpampiasa, ny fidiram-bolan'ny doka, sy ny sisa mba hahitana ny fahombiazan'ny rafitra misy antsika.
Famaranana
Na dia eo aza ny zava-misy fa ny Instagram na ny orinasan'ny ray aman-dreniny Facebook dia orinasa goavana, manana fahatakarana tsara kokoa famolavolana rafitra.
Niezaka mafy aho hanome anao famintinana avo lenta momba ny fahana Instagram.
Manantena aho fa nanampy izany ary hampiasainao tsara.
Leave a Reply