មាតិកា[លាក់][បង្ហាញ]
- 1. តើការរចនាប្រព័ន្ធមានន័យដូចម្តេច?
- 2. តើអ្វីជាលក្ខណៈសំខាន់បំផុតរបស់អ្នករចនាប្រព័ន្ធ?
- 3. តើទ្រឹស្តីបទ CAP ជាអ្វី?
- 4. តើអ្នកយល់យ៉ាងណាចំពោះតុល្យភាពបន្ទុក?
- 5. តើអ្វីជាភាពខុសគ្នារវាងកម្មវិធីអសមកាល និងកម្មវិធីប៉ារ៉ាឡែល?
- 6. តើអ្វីជាភាពខុសគ្នារវាងការធ្វើមាត្រដ្ឋានផ្ដេក និងបញ្ឈរ?
- 7. តើអ្នកមានន័យយ៉ាងណាចំពោះភាពយឺតយ៉ាវ លំហូរចេញ និងលទ្ធភាពនៃប្រព័ន្ធ?
- 8. តើអាស៊ីតអាស៊ីដជាអ្វី?
- 9. តើអ្វីទៅជាការច្រូតកាត់?
- 10. តើ CDN ជាអ្វី?
- 11. ហេតុអ្វីត្រូវប្រើ CDN?
- 12. តើអ្វីជាភាពខុសគ្នារវាងការបំបែក និងការបែងចែក?
- 13. តើឃ្លាំងសម្ងាត់ជាអ្វី?
- 14. តើ CDN edge servers ជាអ្វី?
- 15. តើអ្វីជាគំរូនៃភាពស៊ីសង្វាក់គ្នាសម្រាប់ការរចនាប្រព័ន្ធ?
- 16. តើការចាក់សោសុទិដ្ឋិនិយមមានន័យដូចម្តេច?
- 17. តើអ្នកមានន័យយ៉ាងណាចំពោះ "ការបោះឆ្នោតមេដឹកនាំ"?
- 18. តើវិធីសាស្រ្តរបស់អ្នកសម្រាប់ការរចនាសេវាកម្មខ្លី URL ដូច TinyURL ដែរឬទេ?
- 19. តើវិធីសាស្រ្តរបស់អ្នកក្នុងការរចនា twitter គឺជាអ្វី?
- 20. បង្កើតប្រព័ន្ធ newsfeed សម្រាប់ Facebook
- 21. តើអ្វីជាទ្រព្យសម្បត្តិមូលដ្ឋានរបស់ប្រព័ន្ធ?
- 22. តើអ្វីជា Load Balancing with IP Address Affinity Technique?
- 23. តើអ្វីជាក្បួនដោះស្រាយការជំនួសឃ្លាំងសម្ងាត់ (ឬគោលការណ៍បណ្តេញចេញ)?
- 24. តើអ្នកមានន័យយ៉ាងណាចំពោះប្រតិបត្តិការចែកចាយ?
- 25. តើការអត់ឃ្លានជាអ្វី?
- សន្និដ្ឋាន
មុនពេលអ្នកចាប់ផ្តើមយើងសូមណែនាំឱ្យអានរបស់យើង។ ការណែនាំអំពីការរចនាប្រព័ន្ធ ដើម្បីធ្វើឱ្យចំណេះដឹងមូលដ្ឋានរបស់អ្នកឡើងវិញ។
នៅពេលសម្ភាសន៍សម្រាប់មុខតំណែងដែលទាមទារចំណេះដឹងផ្នែករចនាប្រព័ន្ធ អ្នកមានឱកាសនិយាយអំពីប្រវត្តិរបស់អ្នក និងបង្ហាញពីសមត្ថភាពរបស់អ្នកក្នុងការអភិវឌ្ឍន៍ប្រព័ន្ធស្មុគស្មាញ។
នៅពេលនិយាយជាមួយនិយោជកដែលមានសក្តានុពល របៀបដែលអ្នកបង្ហាញពីជំនាញរបស់អ្នក អាចជួយអ្នកឱ្យបង្ហាញថាអ្នកគឺជាបេក្ខជនដែលមានសមត្ថភាពសម្រាប់មុខតំណែងនេះ។
អ្នកអាចរៀបចំសម្រាប់ការសំភាសន៍ការងាររបស់អ្នកដោយរៀនពីគំនិតរចនាជាមូលដ្ឋាន ហើយគិតអំពីរបៀបដែលអ្នកនឹងឆ្លើយតបទៅនឹងការសាកសួរអំពីពួកគេ។ យើងនឹងពិនិត្យមើលសំណួរសំភាសន៍រចនាប្រព័ន្ធធម្មតាមួយចំនួន និងចម្លើយនៅក្នុងការប្រកាសនេះ ដើម្បីជួយអ្នករៀបចំសម្រាប់ការសម្ភាសន៍បន្ទាប់របស់អ្នក។
1. តើការរចនាប្រព័ន្ធមានន័យដូចម្តេច?
ដំណើរការនៃការបង្កើតលក្ខណៈប្រព័ន្ធ រួមទាំងម៉ូឌុល ស្ថាបត្យកម្ម សមាសធាតុ និងចំណុចប្រទាក់របស់វា និងទិន្នន័យដោយផ្អែកលើលក្ខណៈវិនិច្ឆ័យដែលបានកំណត់ទុកជាមុនត្រូវបានគេស្គាល់ថាជាការរចនាប្រព័ន្ធ។
វាគឺជាដំណើរការនៃការកំណត់ បង្កើត និងរចនាប្រព័ន្ធ ដើម្បីបំពេញតាមគោលដៅ និងគោលបំណងជាក់លាក់របស់ក្រុមហ៊ុន ឬអង្គការ។ ការរចនាប្រព័ន្ធគឺច្រើនអំពីការវិភាគប្រព័ន្ធ គំរូស្ថាបត្យកម្ម APIs គំរូរចនា និងការបិទភ្ជាប់វាទាំងអស់ជាជាងវានិយាយអំពីការសរសេរកូដ។
2. តើអ្វីជាលក្ខណៈសំខាន់បំផុតរបស់អ្នករចនាប្រព័ន្ធ?
- អន្តរកម្មរបស់អ្នកប្រើប្រាស់
- ការហៅ API ខាងក្រៅ
- ដំណើរការក្រៅបណ្តាញ
3. តើទ្រឹស្តីបទ CAP ជាអ្វី?
យោងតាមទ្រឹស្តីបទ CAP (Consistency-Availability-Partition Tolerance) ប្រព័ន្ធចែកចាយមិនអាចធានា C, A, និង P ទាំងអស់ក្នុងពេលតែមួយបានទេ។ វាអាចផ្តល់ការធានាបានតែពីរប៉ុណ្ណោះក្នុងចំណោមការធានាចំនួនបីយ៉ាងច្រើនបំផុត។ ចូរយើងប្រើប្រព័ន្ធមូលដ្ឋានទិន្នន័យដែលបានចែកចាយ ដើម្បីជួយយើងឱ្យយល់អំពីបញ្ហានេះ។
- ភាពស៊ីសង្វាក់គ្នា៖ នេះបញ្ជាក់ថាទិន្នន័យត្រូវតែនៅជាប់លាប់ នៅពេលដែលប្រតិបត្តិការមូលដ្ឋានទិន្នន័យត្រូវបានបញ្ចប់។ ឧទាហរណ៍ សំណួរទាំងអស់គួរតែត្រឡប់ការឆ្លើយតបដូចគ្នាបន្ទាប់ពីការធ្វើបច្ចុប្បន្នភាពមូលដ្ឋានទិន្នន័យ។
- ភាពអាចរកបាន៖ មូលដ្ឋានទិន្នន័យត្រូវតែមាន និងឆ្លើយតបគ្រប់ពេលវេលា។
- Partition Tolerance៖ ទោះបីជាទំនាក់ទំនងមានបញ្ហាក៏ដោយ ប្រព័ន្ធទិន្នន័យគួរតែបន្តដំណើរការ។
4. តើអ្នកយល់យ៉ាងណាចំពោះតុល្យភាពបន្ទុក?
ផ្ទុកតុល្យភាព គឺជាដំណើរការនៃការបំបែកចរាចរណ៍ចូលយ៉ាងមានប្រសិទ្ធិភាពក្នុងចំណោមសំណុំនៃម៉ាស៊ីនបម្រើខាងក្រោយ។ ទាំងនេះត្រូវបានគេហៅថាជា server pools។ គេហទំព័រទំនើបត្រូវបានបង្កើតឡើងដើម្បីដោះស្រាយសំណួររាប់លានពីអតិថិជន ហើយឆ្លើយតបទៅពួកគេយ៉ាងឆាប់រហ័ស និងអាចទុកចិត្តបាន។ នឹងត្រូវការម៉ាស៊ីនមេបន្ថែមទៀត ដើម្បីដោះស្រាយការទាមទារទាំងនេះ។
ក្នុងករណីនេះ វាជារឿងសំខាន់ក្នុងការបែងចែកចរាចរណ៍សំណើប្រកបដោយប្រសិទ្ធភាពក្នុងចំណោមម៉ាស៊ីនមេនីមួយៗ ដើម្បីជៀសវាងការលើសបន្ទុករបស់ពួកគេ។ ឧបករណ៍ផ្ទុកតុល្យភាពមានមុខងារជាប៉ូលីសចរាចរណ៍ ស្ទាក់ចាប់សំណើ និងបញ្ជូនពួកវាក្នុងចំណោមម៉ាស៊ីនមេដែលមាន ដើម្បីកុំឱ្យម៉ាស៊ីនមេណាម្នាក់ត្រូវបន្ទុកលើស ដែលអាចធ្វើឱ្យដំណើរការកម្មវិធីធ្លាក់ចុះ។
5. តើអ្វីជាភាពខុសគ្នារវាងកម្មវិធីអសមកាល និងកម្មវិធីប៉ារ៉ាឡែល?
នៅពេលអ្នកដំណើរការអ្វីមួយមិនសមកាលកម្ម វាមានន័យថាអ្នកមិនចាំបាច់រង់ចាំឱ្យវាបញ្ចប់មុនពេលអ្នកអាចបន្តទៅអ្វីផ្សេងទៀត។ Parallelism សំដៅលើការអនុវត្តក្នុងពេលដំណាលគ្នានៃកិច្ចការជាច្រើន។
នៅពេលដែលអ្នកអាចបំបែកការងារទៅជាផ្នែកផ្សេងៗនៃកម្លាំងពលកម្ម ភាពស្របគ្នាដំណើរការប្រកបដោយប្រសិទ្ធភាព។ Async និង Callbacks គឺជាមធ្យោបាយមួយ (ឧបករណ៍ ឬយន្តការ) ដើម្បីតំណាងឱ្យភាពស្របគ្នា ពោលគឺក្រុមនៃអង្គភាពដែលអាចទំនាក់ទំនង និងចែករំលែកធនធាន។
6. តើអ្វីជាភាពខុសគ្នារវាងការធ្វើមាត្រដ្ឋានផ្ដេក និងបញ្ឈរ?
ការបន្ថែមឧបករណ៍កុំព្យូទ័រថ្មីទៅក្នុងបណ្តាញដែលរីករាលដាលតម្រូវការដំណើរការ និងអង្គចងចាំនៅទូទាំងបណ្តាញឧបករណ៍ដែលបែកខ្ញែកត្រូវបានគេហៅថាការធ្វើមាត្រដ្ឋានផ្ដេក។ និយាយឱ្យសាមញ្ញ អាំងតង់ស៊ីតេម៉ាស៊ីនមេថ្មីត្រូវបានបន្ថែមទៅក្នុងក្រុមបច្ចុប្បន្ន ហើយបន្ទុកចរាចរណ៍ត្រូវបានរីករាលដាលយ៉ាងមានប្រសិទ្ធភាពរវាងឧបករណ៍ទាំងនេះ។
ការធ្វើមាត្រដ្ឋានបញ្ឈរសំដៅលើសញ្ញាណនៃការពង្រីកសមត្ថភាពធនធានរបស់កុំព្យូទ័រតែមួយដោយបន្ថែម RAM ស៊ីភីយូដែលមានប្រសិទ្ធភាព ឬផ្ទេរទៅម៉ាស៊ីនថ្មីដែលមានសមត្ថភាពខ្ពស់ជាង។ មុខងាររបស់ម៉ាស៊ីនមេអាចត្រូវបានបង្កើនដោយមិនចាំបាច់មានការផ្លាស់ប្តូរកម្មវិធីណាមួយឡើយ។
7. តើអ្នកមានន័យយ៉ាងណាចំពោះភាពយឺតយ៉ាវ លំហូរចេញ និងលទ្ធភាពនៃប្រព័ន្ធ?
ការអនុវត្តគឺជាទិដ្ឋភាពសំខាន់នៃការរចនាប្រព័ន្ធ ដោយសារវារួមចំណែកដល់ល្បឿន និងភាពជឿជាក់នៃសេវាកម្មរបស់យើង។ វិធានការអនុវត្តសំខាន់ៗចំនួន ៣ មានដូចខាងក្រោម៖
- ពេលវេលាដែលវាត្រូវការដើម្បីបញ្ជូនសារតែមួយគិតជាមិល្លីវិនាទីត្រូវបានគេហៅថា latency ។
- ចំនួននៃទិន្នន័យដែលបានផ្ទេរដោយជោគជ័យតាមរយៈប្រព័ន្ធមួយក្នុងកំឡុងពេលជាក់លាក់ណាមួយត្រូវបានសំដៅថាជាលំហូរ។ ប៊ីតក្នុងមួយវិនាទីត្រូវបានប្រើដើម្បីវាស់វា។
- រយៈពេលដែលប្រព័ន្ធមានសម្រាប់ប្រតិកម្មទៅនឹងសំណួរត្រូវបានកំណត់ដោយភាពអាចរកបានរបស់វា។ System Uptime / (System Uptime+Downtime) គឺជារូបមន្តសម្រាប់គណនាវា។
8. តើអាស៊ីតអាស៊ីដជាអ្វី?
- Atomicity: វាធានាថាការកែប្រែមូលដ្ឋានទិន្នន័យគឺទាំងអស់ឬគ្មាន។
- ភាពស៊ីសង្វាក់គ្នា៖ តម្លៃទិន្នន័យនៅក្នុងមូលដ្ឋានទិន្នន័យគឺស្រប។
- ភាពឯកោ៖ វាសំដៅទៅលើការបំបែកប្រតិបត្តិការពីរ។
- ភាពធន់៖ ទិន្នន័យត្រូវបានរក្សាទុក ទោះបីជាម៉ាស៊ីនមេបរាជ័យក៏ដោយ។
9. តើអ្វីទៅជាការច្រូតកាត់?
Sharding គឺជាបច្ចេកទេសនៃការបែងចែកសំណុំទិន្នន័យឡូជីខលដ៏ធំមួយទៅក្នុងមូលដ្ឋានទិន្នន័យជាច្រើន។ វាក៏សំដៅទៅលើការបំបែកទិន្នន័យផ្តេកផងដែរ ពីព្រោះទិន្នន័យនឹងត្រូវបានរក្សាទុកនៅលើកុំព្យូទ័រជាច្រើន។ ជាលទ្ធផល មូលដ្ឋានទិន្នន័យដែលបានចែករំលែកអាចដោះស្រាយសំណួរច្រើនជាងកុំព្យូទ័រដ៏ធំតែមួយ។
10. តើ CDN ជាអ្វី?
បណ្តាញចែកចាយមាតិកាគឺជាបណ្តាញកុំព្យូទ័រទូទាំងពិភពលោកដែលសហការគ្នាក្នុងការផ្តល់ព័ត៌មានអ៊ីនធឺណិតយ៉ាងឆាប់រហ័ស។ វាអនុញ្ញាតការចែកចាយរហ័សនៃធាតុដូចជាទំព័រ HTML ឯកសារ JavaScript សន្លឹករចនាប័ទ្ម រូបភាព និងវីដេអូដែលចាំបាច់ដើម្បីផ្ទុកមាតិកាអ៊ីនធឺណិត។
11. ហេតុអ្វីត្រូវប្រើ CDN?
- ដោយពិចារណាលើធនធានឋិតិវន្តបង្កើតបានប្រហែល 80% នៃគេហទំព័រមួយ ការទទួលយក CDN កាត់បន្ថយភាពតានតឹងនៅលើម៉ាស៊ីនមេដើមយ៉ាងខ្លាំង។
- ដោយសារមានចម្ងាយធ្វើដំណើរតិចជាងមុន នោះព័ត៌មាននឹងត្រូវបានផ្តល់ជូនកាន់តែលឿនដល់ម្ចាស់គេហទំព័រដែលមានអ្នកទស្សនាមកពីតំបន់ភូមិសាស្ត្រជាច្រើន។
- អ្នកប្រើប្រាស់ CDNs ក៏ទទួលបានអត្ថប្រយោជន៍ផងដែរពីសមត្ថភាពក្នុងការពង្រីក និងចុះក្រោមយ៉ាងឆាប់រហ័ស ដើម្បីឆ្លើយតបទៅនឹងការកើនឡើងនៃចរាចរណ៍។
12. តើអ្វីជាភាពខុសគ្នារវាងការបំបែក និងការបែងចែក?
Database Sharding – Database sharding គឺជាវិធីសាស្រ្តនៃការបែងចែកសំណុំទិន្នន័យតែមួយចូលទៅក្នុង databases ជាច្រើន ដូច្នេះវាអាចត្រូវបានរក្សាទុកនៅលើ workstation ផ្សេងៗ។ សំណុំទិន្នន័យធំជាងអាចត្រូវបានបំបែកទៅជាកំណាត់តូចៗ និងរក្សាទុកក្នុងថ្នាំងទិន្នន័យជាច្រើន ដែលបង្កើនសមត្ថភាពផ្ទុកសរុបនៃប្រព័ន្ធ។
តាមរយៈការចែកចាយទិន្នន័យនៅលើម៉ាស៊ីនជាច្រើន មូលដ្ឋានទិន្នន័យដែលបានចែករំលែកអាចដោះស្រាយសំណួរច្រើនជាងប្រព័ន្ធតែមួយ។
ការបែងចែកមូលដ្ឋានទិន្នន័យគឺជាដំណើរការនៃការបែងចែកវត្ថុមូលដ្ឋានទិន្នន័យដែលបានរក្សាទុក (តារាង សន្ទស្សន៍ និងទិដ្ឋភាព) ទៅជាបំណែកដាច់ដោយឡែក។ ដើម្បីបង្កើនការគ្រប់គ្រង ដំណើរការ និងភាពអាចរកបាន វត្ថុមូលដ្ឋានទិន្នន័យធំត្រូវបានបែងចែក។
ក្នុងករណីខ្លះ ការបែងចែកអាចបង្កើនល្បឿននៅពេលចូលប្រើទិន្នន័យដែលបានបែងចែក។ ការបែងចែកអាចកាត់បន្ថយទំហំលិបិក្រម និងបង្កើនឱកាសនៃការកំណត់ទីតាំងលិបិក្រមដែលត្រូវការបំផុតនៅក្នុងសតិ ដោយដើរតួជាជួរនាំមុខនៅក្នុងលិបិក្រម។
13. តើឃ្លាំងសម្ងាត់ជាអ្វី?
ឃ្លាំងសម្ងាត់គឺជាបច្ចេកទេសនៃការរក្សាច្បាប់ចម្លងឯកសារនៅក្នុងកន្លែងផ្ទុកបណ្តោះអាសន្នដែលគេស្គាល់ថាជាឃ្លាំងសម្ងាត់ ដែលបង្កើនល្បឿននៃការចូលប្រើទិន្នន័យ និងកាត់បន្ថយភាពយឺតយ៉ាវនៃគេហទំព័រ។ មានតែទិន្នន័យមួយចំនួនប៉ុណ្ណោះដែលអាចរក្សាទុកក្នុងឃ្លាំងសម្ងាត់បាន។
ជាលទ្ធផល ការកំណត់បច្ចេកទេសធ្វើបច្ចុប្បន្នភាពឃ្លាំងសម្ងាត់ដែលសមស្របបំផុតសម្រាប់គោលបំណងអាជីវកម្មគឺមានសារៈសំខាន់។
14. តើម៉ាស៊ីនមេ CDN edge ជាអ្វី?
ម៉ាស៊ីនមេ CDN ដែលឃ្លាំងផ្ទុកទិន្នន័យដែលទទួលបានពីម៉ាស៊ីនមេដើមរបស់អ្នក ឬចង្កោមការផ្ទុកត្រូវបានគេស្គាល់ថាជាម៉ាស៊ីនមេគែម។ ចំណុចវត្តមាន គឺជាពាក្យដែលត្រូវបានប្រើជាញឹកញាប់ដើម្បីពិពណ៌នាអំពីម៉ាស៊ីនមេគែម (POP)។
ម៉ាស៊ីនមេគែមត្រូវបានដាក់ទីតាំងជាក់ស្តែងនៅ POP ។ នៅ POP នោះ ព័ត៌មានអាចត្រូវបានរក្សាទុកដោយម៉ាស៊ីនមេគែមជាច្រើន។
សមត្ថភាពក្នុងការផ្តល់ផ្នែកនៃគេហទំព័រពីកន្លែងជាច្រើនកាត់បន្ថយចម្ងាយរវាងអ្នកចូលមើល និងម៉ាស៊ីនមេគេហទំព័រ ដែលបណ្តាលឱ្យមានភាពយឺតយ៉ាវទាប។ ម៉ាស៊ីនបម្រើគែម CDN សម្រេចបាននូវគោលដៅច្បាស់លាស់នេះ។
15. តើអ្វីជាគំរូនៃភាពស៊ីសង្វាក់គ្នាសម្រាប់ការរចនាប្រព័ន្ធ?
រាល់ការស្នើសុំអានគួរតែទៅយកទិន្នន័យដែលសរសេរថ្មីៗបំផុត នេះបើយោងតាមទ្រឹស្តីបទ CAP ។ នៅពេលដែលច្បាប់ចម្លងទិន្នន័យជាច្រើនអាចចូលដំណើរការបាន ការធ្វើសមកាលកម្មពួកវាដើម្បីឱ្យអតិថិជនទទួលបានទិន្នន័យថ្មីជាបន្តបន្ទាប់ក្លាយជាការលំបាក។ ខាងក្រោមនេះជាគំរូភាពស៊ីសង្វាក់គ្នាដែលអាចធ្វើបាន៖
- ភាពស៊ីសង្វាក់គ្នាខ្សោយ៖ បន្ទាប់ពីសរសេរទិន្នន័យ សំណើអានអាច ឬមិនអាចទទួលបានទិន្នន័យដែលបានធ្វើបច្ចុប្បន្នភាព។ កម្រិតនៃស្ថេរភាពនេះគឺល្អសម្រាប់កម្មវិធីក្នុងពេលជាក់ស្តែងដូចជា VoIP ការជជែកជាវីដេអូ និងការលេងហ្គេមច្រើន។
- ភាពស៊ីសង្វាក់គ្នាជាយថាហេតុ៖ ការអាននៅទីបំផុតនឹងមើលទិន្នន័យថ្មីៗបំផុតក្នុងរយៈពេលមិល្លីវិនាទីបន្ទាប់ពីទិន្នន័យត្រូវបានសរសេរ។ ទិន្នន័យត្រូវបានចម្លងដោយអសមកាលក្នុងករណីនេះ។ ប្រព័ន្ធ DNS និងអ៊ីមែលគឺជាឧទាហរណ៍នៃរឿងនេះ។ វាដំណើរការយ៉ាងមានប្រសិទ្ធភាពនៅក្នុងប្រព័ន្ធដែលមានភាពអាចរកបានខ្ពស់។
- ភាពស៊ីសង្វាក់គ្នាខ្លាំង៖ បន្ទាប់ពីសរសេរទិន្នន័យ អ្នកអាននាពេលអនាគតនឹងមើលទិន្នន័យថ្មីៗបំផុត។ ទិន្នន័យត្រូវបានចម្លងស្របគ្នាក្នុងករណីនេះ។ នេះអាចត្រូវបានគេសង្កេតឃើញនៅក្នុង RDBMS និងប្រព័ន្ធឯកសារដែលសមរម្យសម្រាប់ការផ្ទេរទិន្នន័យ។
16. តើការចាក់សោសុទិដ្ឋិនិយមមានន័យដូចម្តេច?
ការចាក់សោសុទិដ្ឋិនិយមគឺជាយន្តការមួយដែលអ្នកអានកំណត់ត្រា កត់ចំណាំលេខកំណែ (វិធីជំនួសរួមមានកាលបរិច្ឆេទ ត្រាពេលវេលា ឬ checksums/hashes) ហើយបន្ទាប់មកពិនិត្យពីរដងថាកំណែនេះមិនបានផ្លាស់ប្តូរមុនពេលសរសេរវាត្រឡប់មកវិញ។
នៅពេលអ្នកសរសេរកំណត់ត្រាត្រឡប់មកវិញ អ្នកប្រើកំណែដើម្បីត្រងបច្ចុប្បន្នភាព ដើម្បីធានាថាវាជាអាតូមិក។ (ឧ. មិនត្រូវបានផ្លាស់ប្តូររវាងពេលដែលអ្នកពិនិត្យមើលកំណែនិងពេលដែលអ្នកសរសេរកំណត់ត្រាទៅថាស) និងធ្វើឱ្យទាន់សម័យវាទាំងអស់នៅពេលតែមួយ។
17. តើអ្នកមានន័យយ៉ាងណាចំពោះ "ការបោះឆ្នោតមេដឹកនាំ"?
នៅក្នុងប្រព័ន្ធចែកចាយដែលមាន servers ជាច្រើនដែលរួមចំណែកដល់ភាពអាចរកបាននៃកម្មវិធី វាអាចមានពេលខ្លះដែលមានតែ server មួយប៉ុណ្ណោះដែលទទួលខុសត្រូវចំពោះការអាប់ដេត APIs ភាគីទីបី ដោយសារ servers ច្រើនអាចបង្កបញ្ហានៅពេលប្រើប្រាស់ APIs ។
ម៉ាស៊ីនមេនេះត្រូវបានគេស្គាល់ថាជាម៉ាស៊ីនមេចម្បង ហើយនីតិវិធីសម្រាប់ការជ្រើសរើសវាត្រូវបានគេស្គាល់ថាជាការបោះឆ្នោតមេដឹកនាំ។ នៅពេលដែលម៉ាស៊ីនមេនាំមុខបរាជ័យក្នុងប្រព័ន្ធចែកចាយ នោះម៉ាស៊ីនមេត្រូវតែកត់សម្គាល់ការបរាជ័យ ហើយជ្រើសរើសអ្នកដឹកនាំថ្មី។ ដោយប្រើបច្ចេកទេសការយល់ស្រប វិធីសាស្រ្តនេះគឺសមបំផុតសម្រាប់ភាពអាចរកបានខ្ពស់ និងកម្មវិធីដែលមានភាពស៊ីសង្វាក់គ្នាខ្លាំង។
18. តើវិធីសាស្រ្តរបស់អ្នកសម្រាប់ការរចនាសេវាកម្មខ្លី URL ដូច TinyURL ដែរឬទេ?
TinyURL បំប្លែង URL វែងទៅជា URL ខ្លីតែមួយគត់។ បច្ចេកវិទ្យាទាំងនេះក៏អាចទទួលយក URL ខ្លីមួយ និងត្រឡប់ URL ពេញលេញផងដែរ។
តើគុណសម្បត្តិសំខាន់ៗអ្វីខ្លះ?
- បង្កើត URL ដែលខ្លីជាងដើម។
- រក្សា URL វែង ហើយជំនួសវាដោយខ្លីជាង។
- អនុញ្ញាតឱ្យមានការបញ្ជូនបន្តក្នុង URLs ខ្លីៗ។
- URL ខ្លីៗដែលមានឈ្មោះផ្ទាល់ខ្លួនត្រូវបានគាំទ្រ។
- ដោះស្រាយការសាកសួរជាច្រើនក្នុងពេលតែមួយ។
តើអ្វីទៅជាបញ្ហាដែលកើតមានបំផុត?
- តើអ្នករក្សាដាននៃការផ្ទុកទិន្នន័យដោយរបៀបណា?
- តើមានអ្វីកើតឡើងប្រសិនបើការផ្ទុកអ្នកប្រើប្រាស់លើសពីការរំពឹងទុក?
- ចុះបើមនុស្សពីរនាក់ប្រើ URL ផ្ទាល់ខ្លួនដូចគ្នា?
ពិចារណាការណែនាំដូចខាងក្រោមៈ
- Hashing គឺជាសញ្ញាណមួយដែលអាចត្រូវបានប្រើដើម្បីភ្ជាប់ URL ចាស់ និងថ្មី។
- REST API អាចត្រូវបានប្រើដើម្បីគ្រប់គ្រងទំនាក់ទំនងខាងមុខ និងធ្វើឱ្យមានតុល្យភាពនៃបន្ទុកធ្ងន់។
- Multithreading គឺជាសញ្ញាណដែលអនុញ្ញាតឱ្យអ្នកដោះស្រាយសំណើជាច្រើនក្នុងពេលតែមួយ។
- URL ដើមត្រូវបានរក្សាទុកក្នុងមូលដ្ឋានទិន្នន័យ NoSQL ។
19. តើវិធីសាស្រ្តរបស់អ្នកក្នុងការរចនា twitter គឺជាអ្វី?
តម្រូវការដែលបានផ្តល់ឱ្យ៖
- កំពុងផ្ញើ tweets
- តាមអ្នកប្រើប្រាស់ផ្សេងទៀត។
- Tweet feed/newsfeed
- ប្រព័ន្ធអាចធ្វើមាត្រដ្ឋានបាន។
- ផ្ទុកលឿន
- ប្រព័ន្ធអាចទុកចិត្តបាន។
អ្នកអាចចាប់ផ្តើមគិតការរចនា Twitter API របស់អ្នកនៅពេលអ្នកបានបង្កើតលក្ខណៈវិនិច្ឆ័យ។ នេះជារបៀបដែលវានឹងលេចឡើង៖
ដើម្បីចាប់ផ្តើម យើងនឹងគូរចំណុចបញ្ចប់សំខាន់ៗរបស់ API។ នេះគឺជាឧទាហរណ៍មួយចំនួន៖
- sendTweet(សារ)
- តាមដានអ្នកប្រើប្រាស់ (លេខសម្គាល់អ្នកប្រើប្រាស់)
- unfollowUser(លេខសម្គាល់អ្នកប្រើប្រាស់)
- getFeed(ទំព័រ)
ស្ថាបត្យកម្មដែលនឹងបើកលក្ខណៈទាំងនេះអាចត្រូវបានគូសវាសចេញ។ យើងអាចចាប់ផ្តើមជាមួយនឹងអ្នកប្រើប្រាស់ដែលដាក់សំណើរម៉ាស៊ីនមេ។ យើងអាចដំឡើងម៉ាស៊ីនមេ API បន្ថែមនៅពីក្រោយឧបករណ៍ផ្ទុកតុល្យភាព ដើម្បីជួយដល់កម្រិតចរាចរណ៍ធំជាងមុន ដើម្បីបំពេញតម្រូវការធ្វើមាត្រដ្ឋាន។ យើងនឹងត្រូវបន្ថែមមូលដ្ឋានទិន្នន័យ ដើម្បីរក្សាទុក tweets របស់យើងឥឡូវនេះ។
វាជារឿងសំខាន់ក្នុងការចងចាំថា API ដែលយើងផ្តល់គួរតែអាចធ្វើមាត្រដ្ឋានបាន។ ដើម្បីធ្វើឱ្យសេវាកម្មនេះអាចធ្វើមាត្រដ្ឋានបាន យើងអាចឱ្យម៉ាស៊ីនមេ API របស់យើងមួយបានអានពីឃ្លាំងសម្ងាត់ដាច់ដោយឡែកសម្រាប់ព័ត៌មានព័ត៌មានរបស់យើង។ ខណៈពេលដែលធ្វើដូច្នេះ យើងក៏គួរប្រើអ្នកផ្តល់ព័ត៌មានផងដែរ ដើម្បីរក្សាឃ្លាំងសម្ងាត់ព័ត៌មានរបស់យើងឱ្យទាន់សម័យ។
20. បង្កើតប្រព័ន្ធ newsfeed សម្រាប់ Facebook
Newsfeed នៅលើ Facebook អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់មើលឃើញនូវអ្វីដែលកំពុងកើតឡើងនៅក្នុងរង្វង់មិត្តភ័ក្តិ ទំព័រដែលចូលចិត្ត និងស្ថាប័នដែលពួកគេបានតាមដាន។
តើលក្ខណៈសំខាន់ៗអ្វីខ្លះ?
- បង្កើតសារពត៌មានដោយផ្អែកលើការបង្ហោះពីអង្គភាពប្រព័ន្ធផ្សេងទៀតដែលអ្នកប្រើប្រាស់ធ្វើតាម។
- អត្ថបទ រូបភាព អូឌីយ៉ូ និងវីដេអូទាំងអស់អាចត្រូវបានប្រើនៅក្នុងការបង្ហោះ Newsfeed ។
- ក្នុងពេលវេលាជាក់ស្តែង បន្ថែមខ្លឹមសារថ្មីៗទៅក្នុងព័ត៌មានរបស់អ្នកប្រើប្រាស់។
តើអ្វីខ្លះជាបញ្ហាទូទៅបំផុត?
- ចុះបើការបង្ហោះថ្មីត្រូវចំណាយពេលយូរដើម្បីបង្ហាញក្នុងព័ត៌មាន?
- តើក្បួនដោះស្រាយអាចគ្រប់គ្រងសកម្មភាពអ្នកប្រើកើនឡើងឬទេ?
- តើប្រកាសអ្វីខ្លះដែលគួរបង្ហាញមុនគេក្នុងព័ត៌មានព័ត៌មាន?
ពិចារណាការណែនាំដូចខាងក្រោមៈ
- ពិនិត្យមើលយន្តការ fanout សម្រាប់ការចែកចាយប្រកាសទៅកាន់អ្នកតាមដាន។
- ពិនិត្យមើលពីរបៀបដែលការចែករំលែកអាចប្រើដើម្បីគ្រប់គ្រងបន្ទុកអ្នកប្រើប្រាស់ខ្ពស់។
- ទិន្នន័យព័ត៌មានរបស់អ្នកប្រើមិនគួរត្រូវបានចម្លងតាមម៉ាស៊ីនមេជាច្រើនទេ។ ការចែករំលែកអាចត្រូវបានធ្វើជំនួសវិញដោយផ្អែកលើលេខសម្គាល់អ្នកប្រើប្រាស់។
21. តើអ្វីជាទ្រព្យសម្បត្តិមូលដ្ឋានរបស់ប្រព័ន្ធ?
លក្ខណៈពិសេស BASE មានគ្រប់ទីកន្លែងនៅក្នុងមូលដ្ឋានទិន្នន័យ NoSQL ដែលទើបនឹងលេចចេញមក។ ប្រព័ន្ធ BASE មិនផ្តល់ភាពស៊ីសង្វាក់គ្នានោះទេ យោងទៅតាមទ្រឹស្តីបទ CAP ។ នេះគឺជាអក្សរកាត់ដែលបង្កើតឡើងដែលត្រូវគ្នាទៅនឹងទ្រឹស្ដី CAP របស់ប្រព័ន្ធដូចខាងក្រោម៖
- ពាក្យថា "អាចប្រើបានជាមូលដ្ឋាន" មានន័យថាប្រព័ន្ធនឹងមានគ្រប់ពេលវេលា។
- ស្ថានភាពទន់មានន័យថាស្ថានភាពរបស់ប្រព័ន្ធអាចប្រែប្រួលតាមពេលវេលា ទោះបីជាគ្មានការបញ្ចូលណាមួយត្រូវបានផ្តល់ឱ្យក៏ដោយ។ នេះភាគច្រើនដោយសារតែភាពស៊ីសង្វាក់គ្នាជាយថាហេតុរបស់ម៉ូដែល។
- ដោយសារប្រព័ន្ធមិនបានទទួលការបញ្ចូលក្នុងអំឡុងពេលនោះ ភាពស៊ីសង្វាក់គ្នាជាយថាហេតុមានន័យថាប្រព័ន្ធនឹងមានភាពស្របគ្នាតាមពេលវេលា។
22. តើអ្វីជា Load Balancing with IP Address Affinity Technique?
វិធីសាស្រ្តលេចធ្លោមួយទៀតនៃតុល្យភាពបន្ទុកគឺភាពស្និទ្ធស្នាលអាសយដ្ឋាន IP ។ អាសយដ្ឋាន IP របស់អតិថិជនត្រូវបានភ្ជាប់ជាមួយថ្នាំងម៉ាស៊ីនមេនៅក្នុងវិធីនេះ។ ថ្នាំងម៉ាស៊ីនមេមួយគ្រប់គ្រងសំណើទាំងអស់ពីអាសយដ្ឋាន IP របស់អតិថិជន។
វិធីសាស្រ្តនេះគឺសាមញ្ញក្នុងការអនុវត្ត ដោយសារអាសយដ្ឋាន IP តែងតែអាចចូលប្រើបាននៅក្នុងបឋមកថាសំណើ HTTP ហើយមិនត្រូវការការកំណត់បន្ថែមទេ។ ប្រសិនបើអតិថិជនរបស់អ្នកទំនងជាធ្វើឱ្យខូគីអសកម្ម ទម្រង់នៃតុល្យភាពបន្ទុកនេះអាចមានប្រយោជន៍។
23. តើអ្វីជាក្បួនដោះស្រាយការជំនួសឃ្លាំងសម្ងាត់ (ឬគោលការណ៍បណ្តេញចេញ)?
ក្បួនដោះស្រាយឃ្លាំងសម្ងាត់ (ត្រូវបានគេស្គាល់ថាជាក្បួនដោះស្រាយការជំនួសឃ្លាំងសម្ងាត់ គោលការណ៍ជំនួសឃ្លាំងសម្ងាត់ ឬគោលការណ៍ការបណ្តេញឃ្លាំងសម្ងាត់) គឺជាការណែនាំបង្កើនប្រសិទ្ធភាព ឬក្បួនដោះស្រាយ ដែលកម្មវិធីកុំព្យូទ័រ ឬរចនាសម្ព័ន្ធដែលរក្សាដោយផ្នែករឹងអាចប្រើដើម្បីគ្រប់គ្រងឃ្លាំងសម្ងាត់នៃទិន្នន័យដែលផ្ទុកនៅលើកុំព្យូទ័រ។
ឃ្លាំងសម្ងាត់បង្កើនល្បឿនដោយការរក្សាទុកទិន្នន័យដែលបានប្រើថ្មីៗនេះ ឬជាញឹកញាប់ចូលប្រើក្នុងតំបន់អង្គចងចាំ ដែលលឿនជាង ឬមានតម្លៃថោកក្នុងការចូលប្រើជាងការផ្ទុកអង្គចងចាំធម្មតា។ នៅពេលដែលឃ្លាំងផ្ទុកទិន្នន័យពេញ ក្បួនដោះស្រាយត្រូវតែសម្រេចចិត្តថាតើត្រូវលុបធាតុណាមួយចេញ ដើម្បីបង្កើតកន្លែងថ្មីមួយ។
24. តើអ្នកមានន័យយ៉ាងណាចំពោះប្រតិបត្តិការចែកចាយ?
ប្រតិបត្តិការចែកចាយគឺជាកាលៈទេសៈណាមួយដែលព្រឹត្តិការណ៍តែមួយបណ្តាលឱ្យមានការផ្លាស់ប្តូរប្រភពទិន្នន័យខុសគ្នាពីរ ឬច្រើន ដែលមិនអាចត្រូវបានប្រព្រឹត្តដោយអាតូម។
វាកាន់តែស្មុគស្មាញនៅក្នុងពិភពនៃសេវាកម្មមីក្រូ ដោយសារសេវាកម្មនីមួយៗគឺជាអង្គភាពការងារ ហើយភាគច្រើននៃសេវាកម្មជាច្រើនត្រូវតែសហការគ្នាដើម្បីធ្វើឱ្យអាជីវកម្មទទួលបានជោគជ័យ។
25. តើការអត់ឃ្លានជាអ្វី?
នៅពេលដែលខ្សែស្រលាយមិនអាចទទួលបានការចូលប្រើជាប្រចាំចំពោះធនធានដែលបានចែករំលែក វាត្រូវបានគេនិយាយថាកំពុងអត់ឃ្លាន។ វាកើតឡើងនៅពេលដែលខ្សែស្រលាយ "លោភលន់" ឬខ្សែស្រឡាយដែលមាន "អាទិភាព" ខ្ពស់ធ្វើឱ្យធនធានចែករំលែកមិនអាចចូលប្រើបានក្នុងរយៈពេលវែង។
ពិចារណាវត្ថុដែលផ្តល់វិធីសាស្ត្រធ្វើសមកាលកម្មដែលជារឿយៗត្រឡប់យឺត។ ប្រសិនបើខ្សែស្រឡាយមួយហៅវិធីសាស្ត្រនេះម្តងហើយម្តងទៀត នោះខ្សែស្រលាយផ្សេងទៀតដែលតម្រូវឱ្យមានការចូលដំណើរការសមកាលកម្មញឹកញាប់ទៅកាន់វត្ថុដូចគ្នានឹងត្រូវបានរារាំងជាញឹកញាប់។
សន្និដ្ឋាន
វគ្គបំផុសគំនិតគឺជាអ្វីដែលបទសម្ភាសន៍រចនាប្រព័ន្ធមាន។ យើងបានដោះស្រាយសំណួរសម្ភាសន៍ការរចនាប្រព័ន្ធទូទៅបំផុតនៅក្នុងការប្រកាសនេះ។
ការយល់យ៉ាងទូលំទូលាយនៃវិធីសាស្រ្តដែលអ្នកកំពុងធ្វើនៅពេលបង្កើតប្រព័ន្ធជាក់លាក់មួយគឺមានសារៈសំខាន់ក្នុងការឆ្លងកាត់ការសម្ភាសន៍ការរចនាប្រព័ន្ធ។.
សូមផ្ដល់យោបល់