Мундариҷа[Пинҳон кардан][Намоиш]
Instagram Feed як платформаи мубодила ва пайвастшавӣ бо одамон ва чизҳои барои шумо муҳим аст. Вақте ки шумо Instagram-ро мекушоед ё навори худро нав мекунед, аксҳо ва видеоҳое, ки мо фикр мекунем, ки ба шумо таваҷҷӯҳ зоҳир мекунанд, дар боло нишон дода мешаванд.
Навори ахбор маҷмӯаи ашёест, ки дорои матн, тасвирҳо ё видеоҳое мебошад, ки аз ҷониби дигар объектҳои система сохта шудаанд, ки барои хондани шумо равона шудаанд. Он ҳамеша тағир меёбад, дар ҳоле ки созмонҳои дигар паёмҳои нав эҷод мекунанд.
Дар ин паём, мо ба тарҳрезии системаи канали Instagram бодиққат назар хоҳем кард. Пас, биёед оғоз кунем.
1. Талабот
Зарурати функсионалӣ
- Навори навигариҳои корбар аз паёмҳои дигар субъектҳои система, ки корбар пайгирӣ кардааст ё ба онҳо таваҷҷӯҳ дорад, сохта мешавад.
- Матн, тасвирҳо ва видеоҳоро ҳама дар паёмҳо пайдо кардан мумкин аст.
- Навори навигариҳои корбар бояд бо интишори наве, ки дигарон эҷод кардаанд, нав карда шаванд.
Меъёри ғайрифунксионалӣ
- Эҷоди каналҳои хабарӣ бояд дар вақти воқеӣ сурат гирад. Истифодабарандаи ниҳоӣ бояд танҳо 12 сония таъхирро эҳсос кунад.
- Замимаи паёми нав: Барои пайдо шудани паёми нав дар дархости навор пас аз пешниҳоди он ба система на бештар аз 5 сония вақт лозим аст.
2. Баҳодиҳии иқтидор
- То моҳи марти соли 2021 шумораи аҳолии ҷаҳон ҳамагӣ 7.8 миллиард нафарро ташкил медиҳад. Ин нишон медиҳад, ки 21% аҳолии ҷаҳон як Facebook DAU (Истифодабарандаи ҳамарӯза) ва 32% MAU (Монthly Active User) (Истифодабарии Моҳонаи Фаъол) мебошанд. Ин аҷиб аст.
- Биёед вонамуд кунем, ки системае, ки мо сохта истодаем, барои осон кардани кор 1 миллиард DAU дорад.
- Фарз мекунем, ки шахс дар Фейсбук 500 нафар ё тиҷоратро пайгирӣ мекунад. Гуруҳ ё саҳифаро объект ҳисобидан мумкин аст.
Трафики тахминӣ
Фарз мекунем, ки як корбар ба ҳисоби миёна ҳар рӯз 10 маротиба канали хабариро зеркашӣ мекунад. Ҳамин тавр, он ҳар рӯз тақрибан 116K QPS ва 1e10 дархост аст.
Ҳисобҳои нигоҳдорӣ
Фарз мекунем, ки мо ба ҳисоби миёна 500 паёмро аз канали навигариҳои ҳар як корбар дар хотира нигоҳ медорем ва ҳар як паём андозаи 1 КБ аст. Ҳамин тавр, 500 КБ барои як корбар, 500 ТБ барои ҳама DAU ва 5000 компютер бо 100 ГБ хотираи оперативӣ.
3. APIҳо барои системаҳо
userId (GUID): корбаре, ки канали ахбораш гирифта мешавад.
Майдонҳои зерин дар параметри имконоти ихтиёрӣ мавҷуданд:
- afterPostId (GUID): канали ахборро аз паёми пас аз ин хабар гиред. Агар муайян нашуда бошад, паёмҳои охиринро гиред.
- ҳисоб (рақам): шумораи максималии паёмҳое, ки ҳар як дархост метавонад баргардонад. Дар пасандоз шумораи максималии пешфарзро муқаррар мекунад, агар ягонто дода нашавад.
- excludeReplies (boolean): монеъ мешавад, ки ҷавобҳо ба канали ахбор дохил карда шаванд.
- JSON-и баргардонидашуда дорои рӯйхати ҷузъҳои навигариҳо мебошад.
4. Тарҳрезии пойгоҳи додаҳо
Шахсоне
- истифода
- entityId, ном, тавсиф ва тамғаи вақт ҳама майдонҳои ҳатмӣ мебошанд.
- Майдонҳои зерин талаб карда мешаванд: PostId, унвон, матн, муаллиф ID ва тамғаи вақт.
- тамғаи вақт, URL ва mediaId
муносибати
- Дигар корбарон ё субъектҳо метавонанд аз ҷониби корбар пайравӣ кунанд. (м:н)
- Муаллиф-Пост: Ҳам корбарон ва ҳам субъектҳо метавонанд паёмҳо эҷод кунанд. Фарз мекунем, ки танҳо корбарон метавонанд ба хотири соддагӣ паёмҳо эҷод кунанд. (1: n; authorId воридшаванда аст).
- Ҳар як паём бо ягон шакли ВАО ҳамроҳ карда мешавад. (1:н)
5. Тарҳрезии сатҳи баланд
меъморӣ
Корҳо
Истехсоли хуроки чорво
Вақте ки Ҷей ҷараёни навигариҳои худро дархост мекунад, система инҳоро иҷро мекунад:
- Шаҳодатномаҳои ҳама одамон ва чизҳоеро, ки Ҷей пайравӣ мекунад, гиред.
- Маҷмӯи паёмҳо: бо назардошти ин IDҳо, паёмҳои навтарин, маъмул ва мувофиқро гиред.
- Заметкаҳоро аз рӯи мувофиқат ва вақташон баҳо диҳед.
- Кэш: каналҳои эҷодшударо захира кунед ва Ҷей 20 паёми беҳтаринро фиристед.
- Вақте ки Ҷей хондани 20 паёми аввалро тамом кард, дархости дигар барои гирифтани 20 паёми навбатӣ фиристода мешавад.
Тақсимоти ғизо
Фарз кунед, ки Ҷей Аюшро пайгирӣ мекунад ва Аюш ҳама чизи навро нашр мекунад. Наворҳои нави Ҷей бояд аз ҷониби система нав карда шаванд:
- Шаҳодатномаи пайравони Аюушро дарёфт кунед.
- Илова кардани мақолаҳои нав: Ба ҳавзи навигариҳои пайравони ин ID-ҳо пости Аайушро илова кунед.
- Заметкаҳоро аз рӯи мувофиқат ва вақташон баҳо диҳед.
- Кэши пости рейтингро навсозӣ кунед.
- Пайравон бояд ҳангоми нашри паёмҳои нав огоҳ карда шаванд.
Унсурњои
Пайвастҳои корбарон тавассути серверҳои веб нигоҳ дошта мешаванд.
Тартиботи дар боло зикршуда аз ҷониби сервери барномаҳо иҷро карда мешаванд.
Кэш ва базаи маълумот:
- Истифодабарандаи пойгоҳи додаҳо/объект
- Махзани маълумотҳои релятсионӣ (пост)
- Тасвир/атрибути видео: Аайуш сторге
- Метамаълумоти пойгоҳи додаҳои релятсионӣ
Хидматҳои шахсӣ:
- Истехсоли хуроки чорво
- Огоҳӣ дар бораи каналҳо
6. Тарҳрезии муфассал
Насли хўроки чорво
Фан-аз хондан татбиќи соддалавњона:
Мушкилотҳо бо ин татбиқи бесамар иборатанд аз:
- Истифодабарандагоне, ки шумораи зиёди дӯстон/пайравон доранд, сустшавии назаррасро мушоҳида хоҳанд кард, зеро мо бояд шумораи зиёди интишорҳоро аз ғалб, муттаҳид ва гурӯҳбандӣ кунем.
- Вақте ки корбар саҳифаи худро бор мекунад, мо ҷадвали вақтро месозем. Ин метавонад суст бошад ва таъхири зиёд дошта бошад.
- Ҳар як навсозии вазъ боиси навсозии каналҳо барои ҳама пайравон барои навсозиҳои зинда мегардад. Ин метавонад боиси таъхирҳои назаррас дар Хадамоти тавлиди Newsfeed гардад.
Мо метавонем хронологияро пешакӣ тавлид кунем ва онро дар хотира нигоҳ дорем, то самаранокии онро баланд бардорем.
Истеҳсоли офлайнӣ (навиштани мухлисон)
Мо метавонем серверҳои бахшидашуда дошта бошем, ки пайваста дар хотира каналҳои навигариҳои корбаронро эҷод ва нигоҳ медоранд. Мо метавонем танҳо лентаи ахборро аз макони қаблан тавлидшуда ва захирашуда, вақте ки корбар мехоҳад, интиқол диҳем.
Чанд адад хўроки як корбар бояд дар хотира захира карда мешавад?
Дар асоси рафтори истифодаи худ мутобиқ кунед.
Оё мо бояд барои ҳама корбарон феҳристи навигариҳо созем (ва онро дар хотира нигоҳ дорем)?
- Барои одамоне, ки аксар вақт ворид намешаванд.
- Кэш дар асоси LRU як равиши оддӣ аст.
- Ҳалли беҳтар ин фаҳмидани он аст, ки корбарон чӣ тавр ворид мешаванд. Ин кай аст? Шумо дар бораи кадом рӯзҳои корӣ гап мезанед?
Нашри канал
Фанут раванди фиристодани паём ба ҳамаи пайравони шумост.
Фанут хондан (кашед)
Ҳангоме ки шумо канали хабариро дархост мекунед, система дархости хонданро қабул мекунад. Fanout read ба ҳамаи пайравони шумо дархости хондан фиристода, аз онҳо хоҳиш мекунад, ки мундариҷаи онҳоро бихонанд.
тарафдор:
- Тартиби навиштан арзон аст.
- Ҳангоми хондани маълумот, истифодаи алгоритмҳои ҷамъкунии гуногун осонтар аст.
Омӯз:
- Барои шахсе, ки пайравони зиёд дорад, амалиёти хондан хеле гарон аст.
- Истифодабарандагон маълумоти тозаро то он даме, ки онро нагиранд, нахоҳанд дид.
- Вақте ки мо ба таври доимӣ барои гирифтани интишори охирин мекашем, ёфтани каденси дурусти кашидан душвор аст ва аксари дархостҳои ҷалб ҷавоби холӣ бармегардонанд ва захираҳоро беҳуда сарф мекунанд.
Навиштани фанут (пуш)
Ҳангоми фиристодани паёми нав ба система дархости навиштан дода мешавад. Дархости навиштан ба ҳамаи пайравони шумо фиристода мешавад, то феҳристи навигариҳои худро бо истифода аз fanout write навсозӣ кунанд.
барои
- Раванди хондан арзон аст.
Дунёи иқтисод
- Барои корбаре, ки миллионҳо пайравон дорад, навиштан тартиби хеле гарон аст.
Дараҷаи Feed
Ба ҷои фармоиш додани каналҳо аз рӯи хронологӣ, алгоритмҳои рейтинги имрӯза ба таври иловагӣ кӯшиш мекунанд, ки ба ҷузъҳои дорои аҳамияти бештар афзалият дода шаванд.
- Омилҳоеро интихоб кунед, ки метавонанд ба шумо дар муайян кардани мувофиқати як ҷузъи канал кӯмак кунанд, ба монанди шумораи лайкҳо, шарҳҳо ва мубодила, вақти охирин навсозии ашё, агар мақола аксҳо ё видео дошта бошад ва ғайра.
- Дар асоси хусусиятҳо холро ҳисоб кунед.
- Барои рейтинги паёмҳо холро истифода баред.
KPI-ро ба монанди нигоҳдории корбар, даромади таблиғ ва ғайра насб кунед, то бубинед, ки то чӣ андоза самаранок будани системаи рейтинги мо.
хулоса
Сарфи назар аз он, ки Instagram ё тиҷорати волидайни он Facebook як корпоратсияи бузург аст, вай дарки беҳтаре дорад тарҳрезии система.
Ман кӯшиш кардам, ки ба шумо хулосаи сатҳи баландро дар бораи канали Instagram пешниҳод кунам.
Умедворам, ки ин муфид буд ва шумо онро барои хуб истифода хоҳед бурд.
Дин ва мазҳаб