មាតិកា[លាក់][បង្ហាញ]
WhatsApp គឺជាកម្មវិធីផ្ញើសារសង្គមដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ផ្លាស់ប្តូរសារជាមួយគ្នាទៅវិញទៅមក។
តើអ្នកធ្លាប់ពិចារណាពីរបៀបដែល WhatsApp ដំណើរការទេ?
តើគោលគំនិតអ្វីខ្លះដែលគាំទ្រដល់ការបង្កើត និងប្រតិបត្តិការរបស់វា?
អត្ថបទនេះនឹងនិយាយអំពីមូលដ្ឋានគ្រឹះនៃ WhatsApp ការរចនាប្រព័ន្ធ.
យើងក៏នឹងឆ្លងកាត់ស្ថាបត្យកម្មទូទៅរបស់ WhatsApp ដែលអាចត្រូវបានប្រើដើម្បីបង្កើតកម្មវិធីជជែកគ្រប់ប្រភេទ។
ដូច្នេះដោយមិនមានការភ្ញាក់ផ្អើលបន្ថែមទៀត សូមមើលការរចនាប្រព័ន្ធរបស់ WhatsApp!
1. តម្រូវការសំខាន់ៗ
WhatsApp គឺជាបច្ចេកវិទ្យាដែលអាចធ្វើមាត្រដ្ឋានបានខ្ពស់ដែលត្រូវបានប្រើប្រាស់ដោយមនុស្សជាច្រើននៅទូទាំងពិភពលោក។ ជាលទ្ធផល វាគួរតែត្រូវបានរៀបចំឱ្យបានល្អដើម្បីឱ្យមានភាពជឿជាក់ និងដំណើរការ។
ជាលទ្ធផល ការកំណត់តម្រូវការសំខាន់នៃប្រព័ន្ធគឺមានសារៈសំខាន់ណាស់។
នេះគឺជាតម្រូវការអប្បបរមាសម្រាប់អ្នកនាំសារ WhatsApp៖
- មានសមត្ថភាពសម្របសម្រួលអន្តរកម្មមួយទល់នឹងមួយ។
- ការទទួលស្គាល់សារ និងការមើលឃើញចុងក្រោយគឺអាចធ្វើទៅបាន (ផ្ញើ បញ្ជូន និងអាន)។
- អនុញ្ញាតការអ៊ិនគ្រីបពីចុងដល់ចប់ និងការគាំទ្រប្រព័ន្ធផ្សព្វផ្សាយ (រូបភាព/វីដេអូ)។
ចូរយើងស្វែងយល់ថាតើសេវាចាំបាច់របស់យើងត្រូវការកម្រិតណា។
2. ការប៉ាន់ប្រមាណសមត្ថភាព
គោលបំណងរបស់យើងគឺបង្កើតវេទិកាមួយដែលអាចគ្រប់គ្រងបរិមាណចរាចរណ៍ដ៏ច្រើន។ សន្មតថា 10 ពាន់លាន SMS ត្រូវបានផ្ញើក្នុងមួយថ្ងៃ។ យើងមាន:
- ជារៀងរាល់ថ្ងៃ 10 ពាន់លាន SMS ត្រូវបានផ្ញើដោយមនុស្សមួយពាន់លាននាក់។
- នៅចរាចរណ៍ខ្ពស់បំផុត (ក្នុងមួយវិនាទី) មនុស្ស 700,000 នាក់បានសកម្ម (6X ជាមធ្យម)
- ក្នុងអំឡុងពេលប្រើប្រាស់ខ្ពស់បំផុត សារចំនួន 40 លានត្រូវបានបញ្ជូនក្នុងមួយវិនាទី។
- ប្រវែងជាមធ្យមនៃសារមួយគឺ 160 តួអក្សរ៖ 10B * 160 = 1.6TB នៃទិន្នន័យត្រូវបានបង្កើតជារៀងរាល់ថ្ងៃ។
- យកដប់ឆ្នាំនៃការបម្រើជាឧទាហរណ៍: 10 * 1.6B * 365 PB
- កម្មវិធីទាំងមូលនឹងត្រូវបានបង្កើតឡើងពីសេវាមីក្រូ ដែលកម្មវិធីនីមួយៗនឹងដំណើរការកិច្ចការឯកទេសមួយ។ សន្មតថាការផ្ញើសារចំណាយពេល 20 មិល្លីវិនាទី ហើយមាន 100 ការតភ្ជាប់ស្របគ្នាក្នុងមួយម៉ាស៊ីនមេ។ ជាលទ្ធផល ចំនួនដែលរំពឹងទុកនៃម៉ាស៊ីនមេជជែកដែលត្រូវការ = (សារជជែកក្នុងមួយវិនាទី ភាពយឺត)/ ការតភ្ជាប់ស្របគ្នាក្នុងមួយម៉ាស៊ីនមេ = 40M * 20ms / 100 = 8000 ម៉ាស៊ីនមេ។
3. ស្ថាបត្យកម្មកម្រិតខ្ពស់
ប្រព័ន្ធនេះត្រូវបានបង្កើតឡើងនៅលើសេវាស្នូលពីរ។ ឧទាហរណ៍ សេវាកម្មជជែក និងសេវាបណ្តោះអាសន្ន។ សេវាកម្មជជែកដោះស្រាយរាល់ចរាចរណ៍ដែលបង្កើតដោយសារអនឡាញរបស់អ្នកប្រើប្រាស់។ ក្នុងពេលដំណាលគ្នានោះ សេវាកម្មបណ្ដោះអាសន្នគ្រប់គ្រងចរាចរណ៍នៅពេលដែលអ្នកប្រើមិនមានអ៊ីនធឺណិត។
ប្រសិនបើអ្នកប្រើអ៊ីនធឺណិត សេវាកម្មជជែកគឺទទួលបន្ទុកក្នុងការផ្ញើសារ។
វានឹងផ្ទៀងផ្ទាត់ថាតើអ្នកទទួលសារនោះមានអ៊ីនធឺណិតឬអត់។ ប្រសិនបើអ្នកទទួលនៅលើអ៊ីនធឺណិត សេវាកម្មនេះនឹងបញ្ជូនសារភ្លាមៗ។ ប្រសិនបើអ្នកទទួលមិនមានអ៊ីនធឺណិតទេ សេវាបណ្តោះអាសន្ននឹងផ្ញើសារទៅពួកគេ នៅពេលពួកគេត្រឡប់មកអ៊ីនធឺណិតវិញ។
សេវាកម្មបណ្តោះអាសន្នរក្សាកន្លែងផ្ទុកដាច់ដោយឡែកសម្រាប់រក្សាទុកទិន្នន័យដែលអាចចូលដំណើរការបានជាបណ្តោះអាសន្នរហូតដល់អ្នកប្រើប្រាស់ក្រៅបណ្តាញភ្ជាប់ឡើងវិញ។
ការរចនា APIs កម្រិតខ្ពស់
សេវាកម្មនេះមាន API មុខងារកម្រិតខ្ពស់ចំនួនពីរសម្រាប់ការផ្ញើ និងអានសារ។ ប្រព័ន្ធនេះអាចត្រូវបានអនុវត្តដោយប្រើស្ថាបត្យកម្ម REST ។
ប៉ារ៉ាម៉ែត្រសម្រាប់ការផ្ញើសារ
API នេះនឹងត្រូវបានប្រើដើម្បីបញ្ជូនសាររវាងអ្នកប្រើប្រាស់ពីរនាក់។
ប៉ារ៉ាម៉ែត្រនៃការសន្ទនា
API នេះត្រូវបានប្រើដើម្បីបង្ហាញការជជែកជាខ្សែ។ ពិចារណានេះជារឿងដំបូងដែលអ្នកឃើញនៅពេលអ្នកបើក WhatsApp ។ យើងគ្រាន់តែចង់ទទួលបានសារមួយចំនួនសម្រាប់អ្នកប្រើប្រាស់ម្នាក់ក្នុងសំណួរ API តែមួយប៉ុណ្ណោះ។ ដើម្បីដោះស្រាយវា ប៉ារ៉ាម៉ែត្រចំនួនអុហ្វសិត និងសារគឺចាំបាច់។
តើមុខងារនៃលក្ខណៈពិសេសដូចជាបានឃើញចុងក្រោយ ធីកតែមួយ និងសញ្ញាធីកពីរដង?
តួនាទីសំខាន់ក្នុងការដាក់ពង្រាយសេវាកម្មទាំងនេះគឺសេវាកម្មទទួលស្គាល់។ លក្ខណៈពិសេសទាំងនេះត្រូវបានបង្កើតឡើងចាប់តាំងពីសេវាកម្មនេះបន្តបង្កើត និងផ្ទៀងផ្ទាត់ចម្លើយទទួលស្គាល់។
- ធីកតែមួយ៖ នៅពេលដែលសារពីអ្នកប្រើប្រាស់ A ទៅដល់អ្នកប្រើប្រាស់ B នោះម៉ាស៊ីនមេផ្ញើសញ្ញាធីកមួយដោយទទួលស្គាល់ថាសារត្រូវបានបញ្ជូន។
- ធីកពីរដង៖ បន្ទាប់ពីសាររបស់ម៉ាស៊ីនមេត្រូវបានផ្ញើទៅកាន់អ្នកប្រើប្រាស់ B តាមរយៈការតភ្ជាប់ត្រឹមត្រូវ អ្នកប្រើប្រាស់ B នឹងទទួលស្គាល់ការទទួលសារទៅកាន់ម៉ាស៊ីនមេ។ បន្ទាប់មកម៉ាស៊ីនមេនឹងផ្តល់ឱ្យអ្នកប្រើប្រាស់ A ជាមួយនឹងការទទួលស្គាល់មួយផ្សេងទៀត។ ជាលទ្ធផល សញ្ញាធីកស្ទួននឹងលេចឡើង។
- សញ្ញាធីកពណ៌ខៀវ៖ អ្នកប្រើប្រាស់ B នឹងផ្ញើការទទួលស្គាល់មួយផ្សេងទៀតទៅកាន់ម៉ាស៊ីនមេ បន្ទាប់ពីពិនិត្យមើលសារ។ បន្ទាប់មក ម៉ាស៊ីនមេនឹងផ្ញើសារទទួលស្គាល់បន្ថែមដល់អ្នកប្រើប្រាស់ A។ សញ្ញាធីកពណ៌ខៀវនឹងបង្ហាញនៅលើអេក្រង់របស់អ្នកប្រើ A បន្ទាប់ពីនោះ។
- បានឃើញចុងក្រោយ៖ យន្តការចង្វាក់បេះដូងគឺទទួលខុសត្រូវទាំងស្រុងចំពោះលក្ខណៈពិសេសដែលបានឃើញចុងក្រោយ។ រៀងរាល់ 5 វិនាទី ចង្វាក់បេះដូងត្រូវបានបញ្ជូនទៅកាន់ម៉ាស៊ីនមេ ដែលតាមដានស្ថានភាពចុងក្រោយរបស់អ្នកប្រើប្រាស់ម្នាក់ៗនៅក្នុងតារាងដែលអាចចូលប្រើបានយ៉ាងងាយស្រួលដោយអ្នកប្រើប្រាស់ផ្សេងទៀត។
4. ការរចនាមុខងារសំខាន់ៗ
អន្តរកម្មផ្ទាល់ខ្លួន
នេះគឺជាផ្នែកចាំបាច់នៃសេវាកម្មជជែក។ អ្នកប្រើប្រាស់អាចផ្ញើសារទៅកាន់អ្នកប្រើប្រាស់ផ្សេងទៀតដោយប្រើសេវាកម្មនេះ។ តោះមើលថាតើវាដំណើរការយ៉ាងណា៖
សន្មតថា Jay ចង់ទំនាក់ទំនងជាមួយ Aayush ។ Jay ត្រូវបានភ្ជាប់ទៅម៉ាស៊ីនមេជជែកដែលគាត់ទទួលសារ។ Jay ទទួលបានការបញ្ជាក់ពីម៉ាស៊ីនមេជជែកថាសារត្រូវបានបញ្ជូន។ ឥឡូវនេះម៉ាស៊ីនមេជជែកកំពុងស្នើសុំព័ត៌មានពីឃ្លាំងទិន្នន័យអំពីម៉ាស៊ីនមេជជែកដែល Aayush ត្រូវបានភ្ជាប់។ ឥឡូវនេះម៉ាស៊ីនមេជជែករបស់ Jay បញ្ជូនសារទៅម៉ាស៊ីនមេជជែករបស់ Aayush ហើយ Aayush ទទួលបានសារតាមរយៈយន្តការរុញ។ ឥឡូវនេះ Aayush ផ្ញើការទទួលស្គាល់ទៅកាន់ម៉ាស៊ីនមេជជែករបស់ Jay ដែលជូនដំណឹងដល់ Jay ថាសារត្រូវបានបញ្ជូន។ ប្រសិនបើ Aayush បានអានសារម្តងទៀត ការទទួលស្គាល់ថ្មីថាសារត្រូវបានអានត្រូវបានបញ្ជូនទៅ Jay ។
ស្ថានភាពនៃសកម្មភាពអ្នកប្រើប្រាស់
ពេលវេលាចុងក្រោយដែលមនុស្សម្នាក់សកម្មគឺជាមុខងារធម្មតានៃកម្មវិធីផ្ញើសារបន្ទាន់។
ប្រព័ន្ធសម្រាប់រក្សាការតភ្ជាប់រវាងម៉ាស៊ីនភ្ញៀវ និងម៉ាស៊ីនមេត្រូវបានបង្ហាញនៅក្នុងដ្យាក្រាមនេះ។ រន្ធបណ្តាញត្រូវបានប្រើដើម្បីបង្កើតការតភ្ជាប់ទ្វេទិសរវាងម៉ាស៊ីនមេ និងម៉ាស៊ីនភ្ញៀវ។ ការតភ្ជាប់ទាំងនេះបញ្ជូនចង្វាក់បេះដូង ដែលត្រូវបានប្រើដើម្បីតាមដានស្ថានភាពសកម្មភាពរបស់អ្នកប្រើប្រាស់។
ឯកជនភាពពីចុងដល់ចប់
ការអ៊ិនគ្រីបពីចុងដល់ចុងគឺជាមុខងារសំខាន់ដែលធានាថាមានតែអ្នកប្រើប្រាស់សន្ទនាប៉ុណ្ណោះដែលអាចអានការទំនាក់ទំនងបាន។ សោសាធារណៈត្រូវបានចែករំលែកក្នុងចំណោមអ្នកប្រើប្រាស់ទាំងអស់ដែលពាក់ព័ន្ធនឹងការទំនាក់ទំនង ហើយមានសារៈសំខាន់ក្នុងការទ្រទ្រង់ការអ៊ិនគ្រីបពីចុងដល់ចប់។ សន្មតថាមានអ្នកប្រើប្រាស់ពីរនាក់នៅលើប៉ុស្តិ៍គឺ Jay និង Aayush ដែលទាក់ទងគ្នាទៅវិញទៅមក។
Jay មានសោសាធារណៈរបស់ Aayush ហើយ Aayush មានសោសាធារណៈរបស់ Jay ក៏ដូចជាសោឯកជនដែលមិនចែករំលែករបស់ពួកគេ។ ជាលទ្ធផល នៅពេលដែល Jay បញ្ជូនសារ គាត់បានអ៊ិនគ្រីបវាជាមួយនឹងសោសាធារណៈរបស់ Aayush ដែលអាចត្រូវបានឌិកូដដោយប្រើសោឯកជនរបស់ Aayush ប៉ុណ្ណោះ។
ដូចគ្នានេះដែរ Jay នឹងអាចឌិកូដទំនាក់ទំនងរបស់ Aayush ប៉ុណ្ណោះ។ ជាលទ្ធផល មានតែ Jay និង Aaysuh ប៉ុណ្ណោះដែលនឹងអាចមើលឃើញទំនាក់ទំនងរបស់គ្នាទៅវិញទៅមក ហើយម៉ាស៊ីនមេនឹងដំណើរការជាច្រកផ្លូវក្នុងដំណើរការទាំងមូល។
5. ដុំពក
ប្រព័ន្ធនីមួយៗងាយនឹងដំណើរការខុសប្រក្រតី។ ដើម្បីគ្រប់គ្រងបរិមាណចរាចរណ៍ដ៏ច្រើនបែបនេះ សេវាកម្មត្រូវតែរក្សាប្រតិបត្តិការ និងអត់ធ្មត់គ្រប់ពេលវេលា ដើម្បីជៀសវាងការស្ទះ។ ដោយសារសេវាកម្មរបស់យើងពឹងផ្អែកទាំងស្រុងលើម៉ាស៊ីនមេ Chat និង Transient យើងត្រូវតែដោះស្រាយបញ្ហាទាំងអស់ដែលកើតឡើងពីប្រតិបត្តិការរបស់ពួកគេ។
ការបរាជ័យនៃម៉ាស៊ីនមេជជែក៖ នេះគឺជាបេះដូងនៃប្រព័ន្ធរបស់យើង។ នៅពេលដែលអ្នកប្រើប្រាស់អ៊ីនធឺណិត វាទទួលខុសត្រូវក្នុងការគ្រប់គ្រង និងបញ្ជូនសារ។ ជាលទ្ធផល ប្រព័ន្ធនេះរក្សាតំណភ្ជាប់ជាមួយអ្នកប្រើប្រាស់របស់វា។
ជាលទ្ធផល ប្រសិនបើសេវាកម្មនេះបរាជ័យ ស្ថាបត្យកម្មទាំងមូលនឹងរងទុក្ខ។ មានវិធីសាស្រ្តពីរក្នុងការគ្រប់គ្រងការបរាជ័យនៃម៉ាស៊ីនមេជជែក។ វិធីសាស្រ្តមួយគឺដើម្បីផ្លាស់ប្តូរការភ្ជាប់ TCP ទៅម៉ាស៊ីនមេផ្សេងទៀត ខណៈពេលដែលវិធីមួយផ្សេងទៀតគឺអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ចាប់ផ្តើមការតភ្ជាប់ដោយស្វ័យប្រវត្តិក្នុងករណីមានការបាត់បង់ការតភ្ជាប់។
ការបរាជ័យនៃការផ្ទុកបណ្តោះអាសន្ន៖ សមាសធាតុមួយផ្សេងទៀតដែលងាយនឹងបរាជ័យដែលនៅទីបំផុតអាចបំផ្លាញសេវាកម្មទាំងមូលគឺការផ្ទុកបណ្តោះអាសន្ន។ សារដែលធ្វើដំណើរទៅកាន់អ្នកប្រើប្រាស់ក្រៅបណ្តាញត្រូវបានបាត់បង់ ប្រសិនបើសេវាកម្មនេះបរាជ័យ។
យើងអាចការពារការបាត់បង់សារដោយចម្លងកន្លែងផ្ទុកបណ្តោះអាសន្នរបស់អ្នកប្រើនីមួយៗ។ ជាលទ្ធផល ការចម្លងអាចត្រូវបានជួលឱ្យដំណើរការមុខងារនៅពេលណាដែលអ្នកប្រើប្រាស់ត្រឡប់មកអ៊ីនធឺណិតវិញ។ ប្រសិនបើម៉ាស៊ីនមេដើមអាចចូលប្រើបាន ទាំងវត្ថុដើម និងចម្លងនៃកន្លែងផ្ទុកបណ្តោះអាសន្នរបស់អ្នកប្រើប្រាស់ត្រូវបានបញ្ចូលគ្នាទៅក្នុងហាងតែមួយ។
6. បច្ចេកទេសបង្កើនប្រសិទ្ធភាព
ភាពយឺតយ៉ាវ ៖ ដើម្បីផ្តល់នូវបទពិសោធន៍អតិថិជនប្រកបដោយភាពរលូន និងប្រសើរឡើង សេវាកម្មផ្ញើសារត្រូវតែជាពេលវេលាជាក់ស្តែង។ ជាលទ្ធផល ភាពយឺតយ៉ាវត្រូវតែកាត់បន្ថយដោយការរក្សាទុកជាផ្នែកនៃទិន្នន័យដែលបានចូលប្រើញឹកញាប់។ យើងអាចរក្សាទុកស្ថានភាពសកម្មភាពអ្នកប្រើប្រាស់ និងការសន្ទនាថ្មីៗនៅក្នុងអង្គចងចាំដោយប្រើឃ្លាំងសម្ងាត់ដែលបានចែកចាយដូចជា Redis ជាដើម។
ភាពដែលអាចរកបាន ៖ យើងត្រូវការសេវារបស់យើងដើម្បីអាចប្រើបានគ្រប់ពេលវេលា។ ប្រព័ន្ធរបស់យើងត្រូវតែមានការអត់ឱនចំពោះកំហុស ដូច្នេះយើងអាចរក្សាច្បាប់ចម្លងជាច្រើននៃសារអន្តរកាល ដូច្នេះសារណាមួយដែលបាត់អាចត្រូវបានរកឃើញវិញយ៉ាងឆាប់រហ័សពីការចម្លងរបស់វា។ ជាលទ្ធផល ភាពអាចរកបានរបស់ប្រព័ន្ធមិនអាចមានគ្រោះថ្នាក់បានទេ។
សន្និដ្ឋាន
ឥឡូវនេះប្រព័ន្ធរបស់យើងគាំទ្រតែសមត្ថភាពមួយចំនួនប៉ុណ្ណោះ ប៉ុន្តែយើងអាចពង្រីកវាបានយ៉ាងងាយស្រួល ដើម្បីបន្ថែមការជជែកជាក្រុម ដើម្បីចែកចាយសារទៅកាន់បុគ្គលមួយចំនួន។ អ្នកក៏អាចផ្តល់សមត្ថភាពហៅជាវីដេអូ និងទូរស័ព្ទផងដែរ។ ប្រព័ន្ធនេះក៏អាចត្រូវបានបង្កើតឡើងផងដែរ ដែលអ្នកប្រើអាចបោះផ្សាយបច្ចុប្បន្នភាពស្ថានភាព ឬនិទានកថា និងអានគ្នា។
ខ្ញុំបានខិតខំប្រឹងប្រែងដើម្បីផ្តល់ឱ្យអ្នកនូវទិដ្ឋភាពទូទៅកម្រិតខ្ពស់នៃការរចនាប្រព័ន្ធ WhatsApp ។ ខ្ញុំសង្ឃឹមថាអ្នកចូលចិត្តវា ហើយនឹងប្រើវាឱ្យបានល្អ។
សូមផ្ដល់យោបល់