មាតិកា[លាក់][បង្ហាញ]
Instagram Feed គឺជាវេទិកាសម្រាប់ចែករំលែក និងភ្ជាប់ទំនាក់ទំនងជាមួយមនុស្ស និងអ្វីដែលសំខាន់សម្រាប់អ្នក។ នៅពេលអ្នកបើក Instagram ឬផ្ទុកព័ត៌មានរបស់អ្នកឡើងវិញ រូបថត និងវីដេអូដែលយើងគិតថាអ្នកនឹងចាប់អារម្មណ៍នឹងបង្ហាញដល់កំពូល។
អត្ថបទព័ត៌មានគឺជាបណ្តុំនៃធាតុដែលមានអត្ថបទ រូបភាព ឬវីដេអូដែលបង្កើតឡើងដោយអង្គភាពផ្សេងទៀតនៅក្នុងប្រព័ន្ធដែលត្រូវបានកំណត់គោលដៅសម្រាប់អ្នកដើម្បីអាន។ វាតែងតែផ្លាស់ប្តូរ ខណៈពេលដែលស្ថាប័នផ្សេងទៀតកំពុងធ្វើការប្រកាសថ្មី។
នៅក្នុងការប្រកាសនេះ យើងនឹងពិនិត្យមើលយ៉ាងដិតដល់នូវការរចនាប្រព័ន្ធនៃមតិព័ត៌មានរបស់ Instagram ។ ដូច្នេះសូមចាប់ផ្តើម។
តម្រូវការ
តម្រូវការមុខងារ
- មតិព័ត៌មានរបស់អ្នកប្រើប្រាស់ត្រូវបានបង្កើតឡើងពីការបង្ហោះពីអង្គភាពផ្សេងទៀតនៅក្នុងប្រព័ន្ធដែលអ្នកប្រើប្រាស់បានតាមដាន ឬចាប់អារម្មណ៍។
- អត្ថបទ រូបភាព និងវីដេអូទាំងអស់អាចរកបាននៅក្នុងការបង្ហោះ។
- មតិព័ត៌មានរបស់អ្នកប្រើប្រាស់គួរតែត្រូវបានអាប់ដេតជាមួយនឹងការបង្ហោះថ្មីដែលបង្កើតឡើងដោយអ្នកដ៏ទៃ។
លក្ខណៈវិនិច្ឆ័យមិនដំណើរការ
- ការបង្កើតព័ត៌មានព័ត៌មានគួរតែធ្វើឡើងក្នុងពេលវេលាជាក់ស្តែង។ អ្នកប្រើប្រាស់ចុងក្រោយគួរតែជួបប្រទះការពន្យារពេលត្រឹមតែ 12 វិនាទីប៉ុណ្ណោះ។
- ការបន្ថែមការបង្ហោះថ្មី៖ វាគួរចំណាយពេលមិនលើសពី 5 វិនាទីសម្រាប់ការបង្ហោះថ្មីដើម្បីបង្ហាញនៅក្នុងសំណើព័ត៌មានព័ត៌មាន បន្ទាប់ពីវាត្រូវបានបញ្ជូនទៅប្រព័ន្ធ។
2. ការប៉ាន់ប្រមាណសមត្ថភាព
- គិតត្រឹមខែមីនា ឆ្នាំ 2021 ចំនួនប្រជាជនពិភពលោកមានត្រឹមតែ 7.8 ពាន់លាននាក់ប៉ុណ្ណោះ។ វាបង្ហាញថា 21% នៃចំនួនប្រជាជនពិភពលោកគឺជា Facebook DAU (អ្នកប្រើប្រាស់សកម្មប្រចាំថ្ងៃ) និង 32% គឺជា Facebook MAU (អ្នកប្រើប្រាស់សកម្មប្រចាំខែ) (អ្នកប្រើប្រាស់សកម្មប្រចាំខែ)។ នោះពិតជាអស្ចារ្យណាស់។
- ចូរធ្វើពុតថាប្រព័ន្ធដែលយើងកំពុងសាងសង់មាន 1 ពាន់លាន DAU ដើម្បីធ្វើឱ្យអ្វីៗកាន់តែងាយស្រួល។
- សន្មតថាមនុស្សម្នាក់តាមដានមនុស្ស 500 នាក់ឬអាជីវកម្មនៅលើ Facebook ។ ក្រុម ឬទំព័រមួយអាចត្រូវបានចាត់ទុកថាជាអង្គភាពមួយ។
ចរាចរណ៍ប៉ាន់ស្មាន
សន្មតថាអ្នកប្រើប្រាស់ម្នាក់ទាញយកព័ត៌មាន 10 ដងជារៀងរាល់ថ្ងៃជាមធ្យម។ ដូច្នេះវាប្រហែល 116K QPS និង 1e10 សំណើជារៀងរាល់ថ្ងៃ។
ការប៉ាន់ស្មាននៃការផ្ទុក
សន្មតថាយើងរក្សាការបង្ហោះចំនួន 500 ពីព័ត៌មានរបស់អ្នកប្រើនីមួយៗក្នុងសតិជាមធ្យមសម្រាប់ការទាញយករហ័ស ហើយការបង្ហោះនីមួយៗមានទំហំ 1KB ។ ដូច្នេះ 500 KB សម្រាប់អ្នកប្រើប្រាស់ 500 TB សម្រាប់ DAUs ទាំងអស់ និង 5000 កុំព្យូទ័រដែលមាន RAM 100 GB នីមួយៗ។
3. APIs សម្រាប់ប្រព័ន្ធ
userId (GUID)៖ អ្នកប្រើប្រាស់ដែលព័ត៌មានព័ត៌មានកំពុងត្រូវបានទាញយក។
វាលខាងក្រោមមាននៅក្នុងប៉ារ៉ាម៉ែត្រជម្រើសស្រេចចិត្ត៖
- afterPostId (GUID)៖ ទទួលបានព័ត៌មានពីប្រកាសខាងក្រោម។ ប្រសិនបើមិនបានបញ្ជាក់ទេ សូមទទួលបានប្រកាសថ្មីៗបំផុត។
- count (number): ចំនួនអតិបរមានៃប្រកាសដែលសំណើនីមួយៗអាចត្រឡប់មកវិញ។ ផ្នែកខាងក្រោយកំណត់ចំនួនអតិបរមាលំនាំដើម ប្រសិនបើគ្មានការផ្គត់ផ្គង់ទេ។
- excludeReplies (boolean)៖ ការពារការឆ្លើយតបពីការបញ្ចូលទៅក្នុងព័ត៌មាន។
- JSON ត្រឡប់មកវិញមានបញ្ជីធាតុព័ត៌មាន។
4. ការរចនាមូលដ្ឋានទិន្នន័យ
អង្គភាព
- ការពិភាក្សារបស់អ្នកប្រើប្រាស់
- entityId, ឈ្មោះ, description, និង timestamp គឺជាវាលដែលត្រូវការទាំងអស់។
- វាលខាងក្រោមត្រូវបានទាមទារ៖ PostId, title, text, authorId, និង timestamp ។
- ត្រាពេលវេលា url និង mediaId
ទំនាក់ទំនង
- អ្នកប្រើប្រាស់ ឬអង្គភាពផ្សេងទៀតអាចត្រូវបានតាមដានដោយអ្នកប្រើប្រាស់។ (m:n)
- Author-Post៖ ទាំងអ្នកប្រើប្រាស់ និងអង្គភាពអាចបង្កើតការបង្ហោះបាន។ សន្មតថាមានតែអ្នកប្រើប្រាស់ប៉ុណ្ណោះដែលអាចបង្កើតប្រកាសសម្រាប់ជាប្រយោជន៍នៃភាពសាមញ្ញ។ (1:n; authorId គឺអាចបង្កប់បាន)។
- ការបង្ហោះនីមួយៗត្រូវបានអមដោយទម្រង់ប្រព័ន្ធផ្សព្វផ្សាយមួយចំនួន។ (1:n)
5. ការរចនាកម្រិតខ្ពស់
ស្ថាបត្យកម្ម
លំហូរការងារ
ការផលិតចំណី
នៅពេលដែល Jay ស្នើសុំការផ្សាយព័ត៌មានរបស់នាង ប្រព័ន្ធនឹងធ្វើដូចខាងក្រោម៖
- ទៅយកលេខសម្គាល់របស់មនុស្សទាំងអស់ និងរបស់ដែល Jay តាម។
- ប្រកាសសរុប៖ បានផ្តល់លេខសម្គាល់ទាំងនោះ ទទួលបានប្រកាសថ្មីៗ ពេញនិយម និងពាក់ព័ន្ធ។
- ចាត់ថ្នាក់ប្រកាសតាមភាពពាក់ព័ន្ធ និងពេលវេលារបស់ពួកគេ។
- ឃ្លាំងសម្ងាត់៖ រក្សាទុកព័ត៌មានដែលបានបង្កើត ហើយផ្ញើ Jay នូវប្រកាសកំពូលទាំង 20 ។
- នៅពេលដែល Jay បានបញ្ចប់ការអាន 20 ប្រកាសដំបូង សំណើមួយផ្សេងទៀតត្រូវបានផ្ញើដើម្បីទទួលបាន 20 ប្រកាសបន្ទាប់។
ការចែកចាយចំណី
សន្មតថា Jay កំពុងតាម Aayush ហើយថា Aayush បង្ហោះអ្វីថ្មី។ មតិព័ត៌មានរបស់ Jay នឹងត្រូវធ្វើបច្ចុប្បន្នភាពដោយប្រព័ន្ធ៖
- ទៅយកលេខសម្គាល់អ្នកដើរតាម Aayush ។
- បន្ថែមអត្ថបទថ្មី៖ បន្ថែមការបង្ហោះរបស់ Aayush ទៅក្នុងបណ្តុំព័ត៌មានព័ត៌មានរបស់អ្នកតាម IDs ទាំងនោះ។
- ចាត់ថ្នាក់ប្រកាសតាមភាពពាក់ព័ន្ធ និងពេលវេលារបស់ពួកគេ។
- ធ្វើបច្ចុប្បន្នភាពឃ្លាំងសម្ងាត់នៃប្រកាសចំណាត់ថ្នាក់។
- អ្នកតាមដានគួរតែត្រូវបានជូនដំណឹងនៅពេលដែលការបង្ហោះថ្មីត្រូវបានផ្សព្វផ្សាយ។
សមាសភាគ
ការតភ្ជាប់របស់អ្នកប្រើប្រាស់ត្រូវបានរក្សាទុកដោយម៉ាស៊ីនមេគេហទំព័រ។
នីតិវិធីដែលបានចង្អុលបង្ហាញខាងលើត្រូវបានប្រតិបត្តិដោយម៉ាស៊ីនមេកម្មវិធី។
ឃ្លាំងសម្ងាត់ និងមូលដ្ឋានទិន្នន័យ៖
- អ្នកប្រើប្រាស់/អង្គភាពមូលដ្ឋានទិន្នន័យទំនាក់ទំនង
- មូលដ្ឋានទិន្នន័យទំនាក់ទំនង (ប្រកាស)
- គុណលក្ខណៈរូបភាព/វីដេអូ៖ Aayush storge
- ទិន្នន័យមេតានៃមូលដ្ឋានទិន្នន័យទំនាក់ទំនង
សេវាកម្មផ្ទាល់ខ្លួន៖
- ការផលិតចំណី
- ការជូនដំណឹងអំពីមតិព័ត៌មាន
6. ការរចនាលម្អិត
ការបង្កើតចំណី
ការអានការអនុវត្តបែបឆោតល្ងង់របស់អ្នកគាំទ្រ:
បញ្ហានៃការអនុវត្តមិនច្បាស់លាស់នេះរួមមាន:
- អ្នកប្រើប្រាស់ដែលមានមិត្តភ័ក្តិ/អ្នកតាមដានមួយចំនួនធំនឹងសម្គាល់ឃើញថាមានការយឺតយ៉ាវគួរឲ្យកត់សម្គាល់ ដោយសារយើងត្រូវតែរុះរើ បញ្ចូលគ្នា និងដាក់ចំណាត់ថ្នាក់មួយចំនួនធំនៃការបង្ហោះ។
- នៅពេលដែលអ្នកប្រើប្រាស់ផ្ទុកទំព័ររបស់ពួកគេ យើងបង្កើតបន្ទាត់ពេលវេលា។ នេះអាចមានភាពយឺតយ៉ាវ និងមានភាពយឺតយ៉ាវច្រើន។
- ការអាប់ដេតស្ថានភាពនីមួយៗនឹងមានលទ្ធផលនៅក្នុងព័ត៌មានថ្មីៗសម្រាប់អ្នកតាមដានទាំងអស់សម្រាប់ការអាប់ដេតបន្តផ្ទាល់។ នេះអាចបណ្តាលឱ្យមានការពន្យារពេលយ៉ាងសំខាន់នៅក្នុងសេវាកម្មបង្កើត Newsfeed របស់យើង។
យើងអាចបង្កើតកាលប្បវត្តិជាមុន ហើយរក្សាទុកវាក្នុងការចងចាំដើម្បីបង្កើនប្រសិទ្ធភាព។
ផលិតកម្មក្រៅបណ្តាញ (ការសរសេរចេញពីអ្នកគាំទ្រ)
យើងអាចមានម៉ាស៊ីនបម្រើពិសេសដែលកំពុងបង្កើត និងរក្សាទុកព័ត៌មានព័ត៌មានរបស់អ្នកប្រើជានិច្ចក្នុងអង្គចងចាំ។ យើងគ្រាន់តែអាចចែកចាយព័ត៌មានពីទីតាំងដែលបានរក្សាទុកជាមុន នៅពេលណាដែលអ្នកប្រើប្រាស់ចង់បាន។
តើមតិព័ត៌មានរបស់អ្នកប្រើប្រាស់គួររក្សាទុកក្នុងអង្គចងចាំចំនួនប៉ុន្មាន?
សម្របដោយផ្អែកលើឥរិយាបថប្រើប្រាស់របស់អ្នក។
តើយើងគួរបង្កើត Newsfeed សម្រាប់អ្នកប្រើប្រាស់ទាំងអស់ (និងរក្សាទុកវាក្នុងការចងចាំ)?
- សម្រាប់អ្នកដែលមិនចូលញឹកញាប់។
- ឃ្លាំងសម្ងាត់ដែលមានមូលដ្ឋានលើ LRU គឺជាវិធីសាស្រ្តដ៏សាមញ្ញមួយ។
- ដំណោះស្រាយល្អជាងគឺត្រូវស្វែងយល់ពីរបៀបដែលអ្នកប្រើប្រាស់ចូល។ តើនៅពេលណា? តើថ្ងៃណាខ្លះដែលអ្នកកំពុងនិយាយ?
ការបោះពុម្ពផ្សាយ
Fanout គឺជាដំណើរការនៃការផ្ញើប្រកាសទៅកាន់អ្នកតាមដានរបស់អ្នកទាំងអស់។
ការអាន Fanout (ទាញ)
នៅពេលអ្នកស្នើសុំព័ត៌មាន ព័ត៌មាន ប្រព័ន្ធនឹងទទួលសំណើអាន។ Fanout read ផ្ញើសំណើអានទៅកាន់អ្នកតាមដានរបស់អ្នកទាំងអស់ ដោយសុំឱ្យពួកគេអានខ្លឹមសាររបស់ពួកគេ។
គុណសម្បត្តិ
- នីតិវិធីនៃការសរសេរគឺមានតំលៃថោក។
- នៅពេលអានទិន្នន័យ វាកាន់តែងាយស្រួលប្រើក្បួនដោះស្រាយការប្រមូលផ្តុំផ្សេងៗ។
គុណវិបត្តិ:
- សម្រាប់មនុស្សដែលមានអ្នកតាមច្រើន ប្រតិបត្តិការអានគឺថ្លៃជាង។
- អ្នកប្រើប្រាស់នឹងមិនឃើញទិន្នន័យថ្មីទេ រហូតដល់ពួកគេទាញវាចេញ
- នៅពេលដែលយើងទាញដើម្បីទៅយកការប្រកាសថ្មីៗបំផុតនៅលើមូលដ្ឋានជាប្រចាំ វាជាការលំបាកក្នុងការស្វែងរកការទាញត្រឹមត្រូវ ហើយសំណើទាញភាគច្រើននឹងត្រឡប់ជាចម្លើយទទេ ដោយខ្ជះខ្ជាយធនធាន។
Fanout សរសេរ (ជំរុញ)
សំណើសរសេរត្រូវបានធ្វើឡើងចំពោះប្រព័ន្ធ នៅពេលអ្នកផ្ញើប្រកាសថ្មី។ សំណើសរសេរត្រូវបានផ្ញើទៅអ្នកតាមដានរបស់អ្នកទាំងអស់ ដើម្បីធ្វើបច្ចុប្បន្នភាពព័ត៌មានរបស់ពួកគេដោយប្រើ fanout write។
សម្រាប់
- ដំណើរការអានគឺមានតំលៃថោក។
ជាមួយ
- សម្រាប់អ្នកប្រើប្រាស់ដែលមានអ្នកតាមដានរាប់លាននាក់ សរសេរ នីតិវិធីគឺថ្លៃពេក។
ចំណាត់ថ្នាក់នៃមតិព័ត៌មាន
ជំនួសឱ្យការគ្រាន់តែបញ្ជាទិញព័ត៌មានតាមកាលកំណត់ ក្បួនដោះស្រាយចំណាត់ថ្នាក់ថ្ងៃនេះ ព្យាយាមបន្ថែមទៀតដើម្បីធានាថាធាតុដែលមានភាពពាក់ព័ន្ធកាន់តែច្រើនត្រូវបានផ្តល់អាទិភាព។
- ជ្រើសរើសកត្តាដែលអាចជួយអ្នកក្នុងការសម្រេចចិត្តអំពីភាពពាក់ព័ន្ធនៃធាតុព័ត៌មាន ដូចជាចំនួននៃការចូលចិត្ត មតិយោបល់ និងការចែករំលែក ពេលវេលាដែលធាតុត្រូវបានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ ប្រសិនបើអត្ថបទមានរូបថត ឬវីដេអូជាដើម។
- គណនាពិន្ទុដោយផ្អែកលើលក្ខណៈ។
- ប្រើពិន្ទុដើម្បីចាត់ថ្នាក់ប្រកាស។
រៀបចំ KPIs ដូចជាការរក្សាអ្នកប្រើប្រាស់ ចំណូលពីការផ្សាយពាណិជ្ជកម្មជាដើម ដើម្បីមើលថាតើប្រព័ន្ធចំណាត់ថ្នាក់របស់យើងមានប្រសិទ្ធភាពប៉ុណ្ណា។
សន្និដ្ឋាន
ទោះបីជាការពិតដែល Instagram ឬអាជីវកម្មមេរបស់វា Facebook គឺជាសាជីវកម្មដ៏ធំក៏ដោយ វាមានការយល់ដឹងកាន់តែប្រសើរឡើង ការរចនាប្រព័ន្ធ។
ខ្ញុំបានព្យាយាមឱ្យអស់ពីសមត្ថភាពដើម្បីផ្តល់ឱ្យអ្នកនូវសេចក្តីសង្ខេបកម្រិតខ្ពស់នៃមតិព័ត៌មាន Instagram ។
ខ្ញុំសង្ឃឹមថាវាមានប្រយោជន៍ ហើយអ្នកនឹងប្រើវាឱ្យបានល្អ។
សូមផ្ដល់យោបល់