របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

សួស្តី! ឈ្មោះរបស់ខ្ញុំគឺ Alexey Pyankov ខ្ញុំជាអ្នកអភិវឌ្ឍន៍នៅក្រុមហ៊ុន Sportmaster ។ នៅក្នុងនោះ។ ប្រកាស ខ្ញុំបានប្រាប់ពីរបៀបដែលការងារនៅលើគេហទំព័រ Sportmaster បានចាប់ផ្តើមនៅក្នុងឆ្នាំ 2012 តើគំនិតផ្តួចផ្តើមអ្វីខ្លះដែលយើងបានគ្រប់គ្រងដើម្បី "រុញច្រាន" និងផ្ទុយមកវិញ តុងរួចដែលយើងប្រមូលបាន។

ថ្ងៃនេះខ្ញុំចង់ចែករំលែកគំនិតដែលធ្វើតាមប្រធានបទមួយទៀត - ការជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់សម្រាប់ java backend នៅក្នុងតំបន់គ្រប់គ្រងគេហទំព័រ។ គ្រោងនេះមានអត្ថន័យពិសេសសម្រាប់ខ្ញុំ ទោះបីជារឿងនេះបានលាតត្រដាងត្រឹមតែ 2 ខែក៏ដោយ ក្នុងអំឡុងពេល 60 ថ្ងៃនេះ ពួកយើងធ្វើការ 12-16 ម៉ោង និងគ្មានថ្ងៃសម្រាកតែមួយថ្ងៃ។ ខ្ញុំ​មិន​ដែល​គិត ឬ​ស្រមៃ​ថា​វា​អាច​ធ្វើ​ការ​ខ្លាំង​នោះ​ទេ។

ដូច្នេះ ខ្ញុំ​បាន​បំបែក​អត្ថបទ​ជា 2 ផ្នែក ដើម្បី​កុំ​ឲ្យ​វា​ផ្ទុក​ទាំងស្រុង។ ផ្ទុយទៅវិញផ្នែកទីមួយនឹងមានពន្លឺខ្លាំង - ការរៀបចំការណែនាំការពិចារណាមួយចំនួនអំពីអ្វីដែលឃ្លាំងសម្ងាត់។ ប្រសិនបើអ្នកជាអ្នកអភិវឌ្ឍន៍ដែលមានបទពិសោធន៍រួចហើយ ឬបានធ្វើការជាមួយឃ្លាំងសម្ងាត់ ពីផ្នែកបច្ចេកទេស ទំនងជាមិនមានអ្វីថ្មីនៅក្នុងអត្ថបទនេះទេ។ ប៉ុន្តែសម្រាប់ក្មេងតូច ការពិនិត្យឡើងវិញតូចមួយនេះអាចប្រាប់គាត់ថាតើត្រូវរកមើលទិសដៅណា ប្រសិនបើគាត់ឃើញខ្លួនឯងនៅផ្លូវបំបែកបែបនេះ។

របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

នៅពេលដែលកំណែថ្មីនៃគេហទំព័រ Sportmaster ត្រូវបានដាក់ឱ្យដំណើរការ ទិន្នន័យត្រូវបានទទួលតាមរបៀបដែលដាក់វាដោយស្លូតបូត មិនងាយស្រួលនោះទេ។ មូលដ្ឋានគឺជាតារាងដែលបានរៀបចំសម្រាប់កំណែមុននៃគេហទំព័រ (Bitrix) ដែលត្រូវតែទាញចូលទៅក្នុង ETL នាំយកមកនូវទម្រង់ថ្មី និងសំបូរទៅដោយរឿងតូចៗជាច្រើនពីប្រព័ន្ធជាច្រើនទៀត។ ដើម្បីឱ្យរូបភាពថ្មី ឬការពិពណ៌នាផលិតផលបង្ហាញនៅលើគេហទំព័រ អ្នកត្រូវរង់ចាំរហូតដល់ថ្ងៃបន្ទាប់ - ធ្វើបច្ចុប្បន្នភាពតែនៅពេលយប់ មួយថ្ងៃម្តង។

ដំបូងឡើយ មានការព្រួយបារម្ភជាច្រើនពីសប្តាហ៍ដំបូងនៃការចូលផលិតកម្ម ដែលភាពរអាក់រអួលបែបនេះសម្រាប់អ្នកគ្រប់គ្រងមាតិកាគឺជារឿងតូចតាច។ ប៉ុន្តែភ្លាមៗនៅពេលដែលអ្វីៗបានដោះស្រាយរួចរាល់ ការអភិវឌ្ឍន៍គម្រោងបានបន្ត - ពីរបីខែក្រោយមក នៅដើមឆ្នាំ 2015 យើងបានចាប់ផ្តើមអភិវឌ្ឍយ៉ាងសកម្មនូវផ្ទាំងគ្រប់គ្រង។ នៅឆ្នាំ 2015 និង 2016 អ្វីៗដំណើរការល្អ យើងចេញផ្សាយជាទៀងទាត់ បន្ទះគ្រប់គ្រងគ្របដណ្តប់កាន់តែច្រើនឡើងនៃការរៀបចំទិន្នន័យ ហើយយើងកំពុងរៀបចំសម្រាប់ការពិតដែលថាឆាប់ៗនេះក្រុមការងាររបស់យើងនឹងត្រូវបានប្រគល់ឱ្យនូវអ្វីដែលសំខាន់បំផុត និងស្មុគស្មាញបំផុត - ផលិតផល សៀគ្វី (ការរៀបចំពេញលេញនិងការថែរក្សាទិន្នន័យលើផលិតផលទាំងអស់) ។ ប៉ុន្តែនៅរដូវក្តៅឆ្នាំ 2017 មុនពេលចាប់ផ្តើមសៀគ្វីទំនិញគម្រោងនឹងឃើញខ្លួនឯងនៅក្នុងស្ថានភាពលំបាកខ្លាំងណាស់ - ច្បាស់ណាស់ដោយសារតែបញ្ហាជាមួយឃ្លាំងសម្ងាត់។ ខ្ញុំ​ចង់​និយាយ​អំពី​វគ្គ​នេះ​ក្នុង​ផ្នែក​ទីពីរ​នៃ​ការ​បោះពុម្ព​ពីរ​ភាគ​នេះ។

ប៉ុន្តែនៅក្នុងការប្រកាសនេះខ្ញុំនឹងចាប់ផ្តើមពីចម្ងាយខ្ញុំនឹងបង្ហាញគំនិតមួយចំនួន - គំនិតអំពីឃ្លាំងសម្ងាត់ដែលនឹងក្លាយជាជំហានដ៏ល្អដើម្បីរមូរឆ្លងកាត់មុនពេលគម្រោងធំមួយ។

នៅពេលដែលកិច្ចការឃ្លាំងសម្ងាត់កើតឡើង

កិច្ចការឃ្លាំងសម្ងាត់មិនគ្រាន់តែលេចឡើងទេ។ យើងជាអ្នកអភិវឌ្ឍន៍ សរសេរផលិតផលសូហ្វវែរ ហើយចង់ឱ្យវាស្ថិតនៅក្នុងតម្រូវការ។ ប្រសិនបើផលិតផលមានតម្រូវការ និងជោគជ័យ អ្នកប្រើប្រាស់នឹងមក។ ហើយមកកាន់តែច្រើន។ ហើយបន្ទាប់មកមានអ្នកប្រើប្រាស់ច្រើន ហើយបន្ទាប់មកផលិតផលក្លាយជាការផ្ទុកខ្ពស់។

នៅដំណាក់កាលដំបូង យើងមិនគិតពីការបង្កើនប្រសិទ្ធភាព និងការអនុវត្តកូដនោះទេ។ រឿងចំបងគឺមុខងារ បង្កើតអ្នកបើកយន្តហោះយ៉ាងរហ័ស និងសាកល្បងសម្មតិកម្ម។ ហើយប្រសិនបើបន្ទុកកើនឡើងយើងបូមដែក។ យើងបង្កើនវាពីរ ឬបីដង ប្រាំដង ប្រហែលជា 10 ដង។ កន្លែងណាមួយនៅទីនេះ - ហិរញ្ញវត្ថុនឹងមិនអនុញ្ញាតឱ្យវាទៀតទេ។ តើចំនួនអ្នកប្រើប្រាស់នឹងកើនឡើងប៉ុន្មានដង? វានឹងមិនដូច 2-5-10 ទេប៉ុន្តែប្រសិនបើទទួលបានជោគជ័យវានឹងមានពី 100-1000 ទៅ 100 ពាន់ដង។ នោះគឺមិនយូរមិនឆាប់ អ្នកនឹងត្រូវធ្វើការបង្កើនប្រសិទ្ធភាព។

ឧបមាថាផ្នែកខ្លះនៃកូដ (សូមហៅផ្នែកនេះថាមុខងារ) ចំណាយពេលយូរមិនសមរម្យ ហើយយើងចង់កាត់បន្ថយពេលវេលាប្រតិបត្តិ។ មុខងារមួយអាចចូលទៅកាន់មូលដ្ឋានទិន្នន័យ ឬវាអាចជាការប្រតិបត្តិនៃតក្កវិជ្ជាស្មុគស្មាញមួយចំនួន - រឿងសំខាន់គឺថាវាត្រូវការពេលយូរដើម្បីបញ្ចប់។ តើអ្នកអាចកាត់បន្ថយពេលវេលាអនុវត្តបានប៉ុន្មាន? នៅក្នុងដែនកំណត់ អ្នកអាចកាត់បន្ថយវាដល់សូន្យ ដោយមិនបាច់បន្ថែមទៀតទេ។ តើអ្នកអាចកាត់បន្ថយពេលវេលាប្រតិបត្តិទៅសូន្យដោយរបៀបណា? ចម្លើយ៖ លុបបំបាត់ការប្រតិបត្តិទាំងស្រុង។ ផ្ទុយទៅវិញ ត្រឡប់លទ្ធផលភ្លាមៗ។ តើអ្នកអាចរកឃើញលទ្ធផលដោយរបៀបណា? ចម្លើយ៖ ទាំងគណនាវា ឬមើលកន្លែងណាមួយ។ វាត្រូវការពេលយូរដើម្បីគណនា។ ហើយដើម្បីឈ្លបយកការណ៍គឺជាឧទាហរណ៍ដើម្បីចងចាំលទ្ធផលដែលមុខងារផលិតលើកចុងក្រោយនៅពេលហៅជាមួយប៉ារ៉ាម៉ែត្រដូចគ្នា។

នោះគឺការអនុវត្តមុខងារមិនសំខាន់សម្រាប់យើងទេ។ វាគ្រប់គ្រាន់ហើយក្នុងការដឹងពីប៉ារ៉ាម៉ែត្រអ្វីដែលលទ្ធផលអាស្រ័យ។ បន្ទាប់មក ប្រសិនបើតម្លៃប៉ារ៉ាម៉ែត្រត្រូវបានតំណាងក្នុងទម្រង់ជាវត្ថុដែលអាចត្រូវបានប្រើជាសោនៅក្នុងកន្លែងផ្ទុកមួយចំនួន នោះលទ្ធផលនៃការគណនាអាចត្រូវបានរក្សាទុក ហើយអានចេញនៅពេលក្រោយវាត្រូវបានចូលប្រើ។ ប្រសិនបើការសរសេរ និងការអានលទ្ធផលនេះលឿនជាងការប្រតិបត្តិមុខងារ នោះយើងមានផលចំណេញទាក់ទងនឹងល្បឿន។ ចំនួនទឹកប្រាក់នៃប្រាក់ចំណេញអាចឈានដល់ 100, 1000 និង 100 ពាន់ដង (10^5 គឺជាករណីលើកលែង ប៉ុន្តែក្នុងករណីដែលមានមូលដ្ឋានយឺតយ៉ាវ វាពិតជាអាចទៅរួច)។

តម្រូវការមូលដ្ឋានសម្រាប់ប្រព័ន្ធឃ្លាំងសម្ងាត់

រឿងដំបូងដែលអាចក្លាយជាតម្រូវការសម្រាប់ប្រព័ន្ធឃ្លាំងសម្ងាត់គឺល្បឿនអានលឿន ហើយក្នុងកម្រិតតិចជាងបន្តិច ល្បឿនសរសេរ។ នេះ​ជា​ការ​ពិត ប៉ុន្តែ​ទាល់​តែ​យើង​ដាក់​ប្រព័ន្ធ​ទៅ​ផលិត។

តោះលេងករណីនេះ។

ចូរនិយាយថាយើងបានផ្តល់បន្ទុកបច្ចុប្បន្នជាមួយនឹងផ្នែករឹង ហើយឥឡូវនេះកំពុងណែនាំបន្តិចម្តងៗនូវឃ្លាំងសម្ងាត់។ ចំនួនអ្នកប្រើប្រាស់កើនឡើងបន្តិច បន្ទុកកើនឡើង - យើងបន្ថែមឃ្លាំងសម្ងាត់តូចមួយ វីសវានៅទីនេះ និងទីនោះ។ វាបន្តសម្រាប់ពេលខ្លះ ហើយឥឡូវនេះមុខងារធ្ងន់ៗមិនត្រូវបានគេហៅទៀតទេ - បន្ទុកសំខាន់ទាំងមូលធ្លាក់លើឃ្លាំងសម្ងាត់។ ចំនួនអ្នកប្រើប្រាស់ក្នុងអំឡុងពេលនេះបានកើនឡើង N ដង។

ហើយប្រសិនបើការផ្គត់ផ្គង់ផ្នែករឹងដំបូងអាចមាន 2-5 ដង នោះដោយមានជំនួយពីឃ្លាំងសម្ងាត់ យើងអាចធ្វើឱ្យប្រសើរឡើងនូវការអនុវត្តដោយកត្តា 10 ឬក្នុងករណីល្អដោយកត្តា 100 នៅកន្លែងខ្លះប្រហែលជាដោយកត្តា។ នៃ 1000។ នោះគឺនៅលើផ្នែករឹងដូចគ្នា - យើងដំណើរការសំណើច្រើនជាង 100 ដង។ អស្ចារ្យណាស់ អ្នកសមនឹងទទួលបាននំបុ័ងខ្ញី!

ប៉ុន្តែឥឡូវនេះ នៅពេលដ៏ល្អមួយ ដោយចៃដន្យ ប្រព័ន្ធគាំង ហើយឃ្លាំងសម្ងាត់បានដួលរលំ។ គ្មានអ្វីពិសេសទេ - បន្ទាប់ពីទាំងអស់ ឃ្លាំងសម្ងាត់ត្រូវបានជ្រើសរើសដោយផ្អែកលើតម្រូវការ "ល្បឿនអាន និងសរសេរខ្ពស់ នៅសល់មិនសំខាន់ទេ"។

ទាក់ទងទៅនឹងការផ្ទុកចាប់ផ្តើមការបម្រុងជាតិដែករបស់យើងគឺ 2-5 ដងហើយការផ្ទុកក្នុងអំឡុងពេលនេះបានកើនឡើង 10-100 ដង។ ដោយប្រើឃ្លាំងសម្ងាត់ យើងបានលុបការហៅចេញសម្រាប់មុខងារធ្ងន់ៗ ហើយដូច្នេះអ្វីៗដំណើរការ។ ហើយឥឡូវនេះ បើគ្មានឃ្លាំងសម្ងាត់ តើប្រព័ន្ធរបស់យើងនឹងថយចុះប៉ុន្មានដង? តើនឹងមានអ្វីកើតឡើងចំពោះយើង? ប្រព័ន្ធនឹងធ្លាក់ចុះ។

ទោះបីជាឃ្លាំងសម្ងាត់របស់យើងមិនគាំងក៏ដោយ ប៉ុន្តែត្រូវបានសម្អាតមួយរយៈប៉ុណ្ណោះ វានឹងត្រូវការកំដៅឡើង ហើយវានឹងចំណាយពេលខ្លះ។ ហើយក្នុងអំឡុងពេលនេះបន្ទុកចម្បងនឹងធ្លាក់លើមុខងារ។

សេចក្តីសន្និដ្ឋាន៖ គម្រោងផលិតកម្មដែលមានបន្ទុកខ្ពស់ទាមទារប្រព័ន្ធឃ្លាំងសម្ងាត់មិនត្រឹមតែមានល្បឿនអាន និងសរសេរខ្ពស់ប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងធានាសុវត្ថិភាពទិន្នន័យ និងធន់នឹងការបរាជ័យផងដែរ។

ភាពឈឺចាប់នៃជម្រើស

នៅក្នុងគម្រោងដែលមានផ្ទាំងគ្រប់គ្រង ជម្រើសបានទៅដូចនេះ៖ ដំបូងយើងបានដំឡើង Hazelcast ពីព្រោះ យើងធ្លាប់ស្គាល់ផលិតផលនេះរួចហើយពីបទពិសោធន៍នៃគេហទំព័រសំខាន់។ ប៉ុន្តែនៅទីនេះជម្រើសនេះបានប្រែទៅជាមិនជោគជ័យ - នៅក្រោមទម្រង់ផ្ទុករបស់យើង Hazelcast មិនគ្រាន់តែយឺតទេ ប៉ុន្តែយឺតយ៉ាវណាស់។ ហើយនៅពេលនោះ យើងបានចុះឈ្មោះរួចហើយសម្រាប់កាលបរិច្ឆេទចេញផ្សាយ។

Spoiler៖ តើកាលៈទេសៈបានរីកចម្រើនយ៉ាងណា ដែលយើងខកខានកិច្ចការធំបែបនេះ ហើយបញ្ចប់ដោយស្ថានភាពស្រួចស្រាវ និងតានតឹង - ខ្ញុំនឹងប្រាប់អ្នកនៅក្នុងផ្នែកទីពីរ - និងរបៀបដែលយើងបញ្ចប់ និងរបៀបដែលយើងទទួលបាន។ ប៉ុន្តែឥឡូវនេះ - ខ្ញុំនឹងនិយាយថាវាជាភាពតានតឹងច្រើនហើយ "ដើម្បីគិត - ដូចម្ដេចខ្ញុំមិនអាចគិតបានទេយើងកំពុងញ័រដប" ។ "អង្រួនដប" ក៏ជាការរំខានផងដែរ បន្ថែមទៀតនៅពេលក្រោយ។

អ្វីដែលយើងបានធ្វើ៖

  1. យើងបង្កើតបញ្ជីប្រព័ន្ធទាំងអស់ដែល Google និង StackOverflow ណែនាំ។ ជាង 30 បន្តិច
  2. យើងសរសេរការធ្វើតេស្តជាមួយនឹងបន្ទុកធម្មតាសម្រាប់ផលិតកម្ម។ ដើម្បីធ្វើដូចនេះយើងបានកត់ត្រាទិន្នន័យដែលឆ្លងកាត់ប្រព័ន្ធនៅក្នុងបរិយាកាសផលិតកម្ម - ប្រភេទនៃការ sniffer សម្រាប់ទិន្នន័យមិនមែននៅលើបណ្តាញទេប៉ុន្តែនៅខាងក្នុងប្រព័ន្ធ។ ពិតប្រាកដណាស់ ទិន្នន័យនេះត្រូវបានប្រើប្រាស់ក្នុងការធ្វើតេស្ត។
  3. ជាមួយនឹងក្រុមទាំងមូល អ្នកគ្រប់គ្នាជ្រើសរើសប្រព័ន្ធបន្ទាប់ពីបញ្ជី កំណត់រចនាសម្ព័ន្ធវា និងដំណើរការការធ្វើតេស្ត។ វាមិនឆ្លងកាត់ការសាកល្បងទេ វាមិនផ្ទុកបន្ទុកទេ - យើងបោះវាចោល ហើយបន្តទៅជួរបន្ទាប់ទៀត។
  4. នៅលើប្រព័ន្ធទី 17 វាច្បាស់ណាស់ថាអ្វីគ្រប់យ៉ាងគឺអស់សង្ឃឹម។ ឈប់​អង្រួន​ដប​ទៀត ដល់​ពេល​ត្រូវ​គិត​ឲ្យ​ច្បាស់​ហើយ។

ប៉ុន្តែនេះគឺជាជម្រើសមួយនៅពេលដែលអ្នកត្រូវជ្រើសរើសប្រព័ន្ធដែលនឹង "ឆ្លងកាត់ល្បឿន" នៅក្នុងការធ្វើតេស្តដែលបានរៀបចំជាមុន។ ចុះ​បើ​មិន​ទាន់​មាន​ការ​ធ្វើ​តេស្ត​បែប​នេះ​ហើយ​ចង់​ជ្រើស​រើស​ឲ្យ​បាន​លឿន?

ចូរយើងយកគំរូតាមជម្រើសនេះ (វាពិបាកក្នុងការស្រមៃថាអ្នកអភិវឌ្ឍន៍កណ្តាល+រស់នៅក្នុងកន្លែងទំនេរមួយ ហើយនៅពេលជ្រើសរើសមិនទាន់បានកំណត់ជាផ្លូវការនូវចំណូលចិត្តរបស់គាត់ថាតើផលិតផលមួយណាដែលត្រូវសាកល្បងមុនគេ - ដូច្នេះហើយ ហេតុផលបន្ថែមទៀតគឺជាទ្រឹស្តី/ទស្សនវិជ្ជា/ អំពីក្មេងជំទង់) ។

ដោយបានសម្រេចចិត្តលើតម្រូវការ យើងនឹងចាប់ផ្តើមជ្រើសរើសដំណោះស្រាយចេញពីប្រអប់។ ហេតុអ្វីបានជាបង្កើតកង់ឡើងវិញ៖ យើងនឹងទៅយកប្រព័ន្ធឃ្លាំងសម្ងាត់ដែលត្រៀមរួចជាស្រេច។

ប្រសិនបើអ្នកទើបតែចាប់ផ្តើម និង google វា បន្ទាប់មកផ្តល់ ឬទទួលយកការបញ្ជាទិញ ប៉ុន្តែជាទូទៅ ការណែនាំនឹងមានលក្ខណៈដូចនេះ។ ជាដំបូង អ្នកនឹងឆ្លងកាត់ Redis វាត្រូវបានគេឮគ្រប់ទីកន្លែង។ បន្ទាប់មកអ្នកនឹងដឹងថា EhCache គឺជាប្រព័ន្ធចាស់ជាងគេ និងបង្ហាញឱ្យឃើញច្រើនបំផុត។ បន្ទាប់យើងនឹងសរសេរអំពី Tarantool ដែលជាការអភិវឌ្ឍន៍ក្នុងស្រុកដែលមានទិដ្ឋភាពពិសេសនៃដំណោះស្រាយ។ ហើយក៏ Ignite ផងដែរ ព្រោះវាកំពុងតែមានការកើនឡើងនៃប្រជាប្រិយភាព និងរីករាយជាមួយនឹងការគាំទ្រពី SberTech ។ នៅចុងបញ្ចប់ក៏មាន Hazelcast ផងដែរពីព្រោះនៅក្នុងពិភពសហគ្រាសវាជារឿយៗលេចឡើងក្នុងចំណោមក្រុមហ៊ុនធំ ៗ ។

បញ្ជីនេះមិនទូលំទូលាយទេ មានប្រព័ន្ធរាប់សិប។ ហើយយើងនឹងវាយតែរឿងមួយ។ តោះយកប្រព័ន្ធ 5 ដែលបានជ្រើសរើសសម្រាប់ "ការប្រលងសម្រស់" ហើយធ្វើការជ្រើសរើស។ តើអ្នកណានឹងក្លាយជាអ្នកឈ្នះ?

Redis

យើងអានអ្វីដែលពួកគេសរសេរនៅលើគេហទំព័រផ្លូវការ។
Redis - គម្រោងប្រភពបើកចំហ។ ផ្តល់ជូននូវការផ្ទុកទិន្នន័យក្នុងអង្គចងចាំ សមត្ថភាពក្នុងការរក្សាទុកនៅលើថាស ការបែងចែកដោយស្វ័យប្រវត្តិ ភាពអាចរកបានខ្ពស់ និងការស្តារឡើងវិញពីការដាច់បណ្តាញ។

វាហាក់ដូចជាថាអ្វីគ្រប់យ៉ាងគឺល្អអ្នកអាចយកវាហើយវីសវា - អ្វីគ្រប់យ៉ាងដែលអ្នកត្រូវការវាធ្វើ។ ប៉ុន្តែ​គ្រាន់​តែ​ជា​ការ​លេង​សើច សូម​មើល​បេក្ខជន​ផ្សេង​ទៀត។

EhCache

EhCache - "ឃ្លាំងសម្ងាត់ដែលប្រើយ៉ាងទូលំទូលាយបំផុតសម្រាប់ចាវ៉ា" (ការបកប្រែពាក្យស្លោកពីគេហទំព័រផ្លូវការ) ។ ប្រភពបើកចំហផងដែរ។ ហើយបន្ទាប់មកយើងយល់ថា Redis មិនមែនសម្រាប់ java ទេ ប៉ុន្តែជាទូទៅ ហើយដើម្បីធ្វើអន្តរកម្មជាមួយវា អ្នកត្រូវការ wrapper ។ ហើយ EhCache នឹងកាន់តែងាយស្រួល។ តើប្រព័ន្ធសន្យាអ្វីទៀត? ភាពជឿជាក់ បង្ហាញឱ្យឃើញ មុខងារពេញលេញ។ ជាការប្រសើរណាស់ វាក៏ជារឿងធម្មតាបំផុតផងដែរ។ និងឃ្លាំងសម្ងាត់ terabytes នៃទិន្នន័យ។

Redis ត្រូវបានបំភ្លេចចោល ខ្ញុំត្រៀមខ្លួនរួចរាល់ហើយដើម្បីជ្រើសរើស EhCache ។

ប៉ុន្តែអារម្មណ៍ស្នេហាជាតិជំរុញឱ្យខ្ញុំឃើញអ្វីដែលល្អអំពី Tarantool ។

តារ៉ាន់ធូល។

តារ៉ាន់ធូល។ - បំពេញតាមការរចនា "វេទិការួមបញ្ចូលទិន្នន័យពេលវេលាពិត" ។ វាស្តាប់ទៅដូចជាស្មុគស្មាញ ដូច្នេះយើងអានទំព័រនេះឱ្យលម្អិត ហើយស្វែងរកសេចក្តីថ្លែងការណ៍ខ្លាំងៗមួយថា "ឃ្លាំងសម្ងាត់ 100% នៃទិន្នន័យនៅក្នុង RAM" ។ នេះគួរតែចោទជាសំណួរ - បន្ទាប់ពីទាំងអស់ វាអាចមានទិន្នន័យច្រើនជាងអង្គចងចាំ។ ការពន្យល់គឺថាវាមានន័យថា Tarantool មិនដំណើរការសៀរៀលដើម្បីសរសេរទិន្នន័យទៅថាសពីអង្គចងចាំទេ។ ផ្ទុយទៅវិញ វាប្រើមុខងារកម្រិតទាបរបស់ប្រព័ន្ធ នៅពេលដែលអង្គចងចាំត្រូវបានផ្គូផ្គងទៅនឹងប្រព័ន្ធឯកសារដែលមានដំណើរការ I/O ល្អណាស់។ ជាទូទៅពួកគេបានធ្វើអ្វីដែលអស្ចារ្យ និងត្រជាក់។

សូមក្រឡេកមើលការអនុវត្ត៖ ផ្លូវហាយវេសាជីវកម្ម Mail.ru, Avito, Beeline, Megafon, Alfa-Bank, Gazprom ...

ប្រសិនបើនៅតែមានការសង្ស័យអំពី Tarantool នោះករណីអនុវត្តនៅ Mastercard នឹងបញ្ចប់ខ្ញុំ។ ខ្ញុំយក Tarantool ។

ប៉ុន្តែយ៉ាងណាក៏ដោយ…

អេតិត

… មានខ្លះទៀត? អេតិតវាត្រូវបានចេញវិក្កយបត្រជា "វេទិកាកុំព្យូទ័រក្នុងសតិ...ល្បឿនក្នុងអង្គចងចាំលើទិន្នន័យចំនួន petabytes"។ វាក៏មានអត្ថប្រយោជន៍ជាច្រើននៅទីនេះផងដែរ៖ ឃ្លាំងសម្ងាត់ដែលបានចែកចាយក្នុងអង្គចងចាំ ការរក្សាទុកនិងឃ្លាំងសម្ងាត់តម្លៃសោរលឿនបំផុត ការធ្វើមាត្រដ្ឋានផ្ដេក ភាពអាចរកបានខ្ពស់ ភាពត្រឹមត្រូវតឹងរឹង។ ជាទូទៅវាប្រែថាលឿនបំផុតគឺ Ignite ។

ការអនុវត្ត៖ Sberbank, American Airlines, Yahoo! ជប៉ុន។ ហើយបន្ទាប់មកខ្ញុំដឹងថា Ignite មិនត្រឹមតែត្រូវបានអនុវត្តនៅក្នុង Sberbank ប៉ុណ្ណោះទេ ប៉ុន្តែក្រុម SberTech បានបញ្ជូនមនុស្សរបស់ខ្លួនទៅកាន់ក្រុម Ignite ផ្ទាល់ដើម្បីកែលម្អផលិតផល។ នេះ​គឺ​ជា​ការ​ចាប់​អារម្មណ៍​ទាំង​ស្រុង​ហើយ​ខ្ញុំ​ត្រៀម​ខ្លួន​ជា​ស្រេច​ដើម្បី​យក Ignite ។

វា​មិន​ច្បាស់​ថា​ហេតុអ្វី​បាន​ជា​ខ្ញុំ​កំពុង​មើល​ចំណុច​ទី​ប្រាំ។

ហាហ្សែល

ខ្ញុំទៅគេហទំព័រ ហាហ្សែល, ការអាន។ ហើយវាប្រែថាដំណោះស្រាយលឿនបំផុតសម្រាប់ការចែកចាយឃ្លាំងសម្ងាត់គឺ Hazelcast ។ វាគឺជាលំដាប់នៃរ៉ិចទ័រលឿនជាងដំណោះស្រាយផ្សេងទៀតទាំងអស់ ហើយជាទូទៅវាគឺជាអ្នកនាំមុខគេក្នុងវិស័យបណ្តាញទិន្នន័យក្នុងអង្គចងចាំ។ ប្រឆាំង​នឹង​សាវតា​នេះ ការ​យក​អ្វី​ផ្សេង​គឺ​មិន​គោរព​ខ្លួន​ឯង។ វាក៏ប្រើការផ្ទុកទិន្នន័យដែលលែងត្រូវការសម្រាប់ប្រតិបត្តិការជាបន្តបន្ទាប់នៃចង្កោមដោយមិនបាត់បង់ទិន្នន័យ។

នោះហើយជាវា ខ្ញុំត្រៀមខ្លួនជាស្រេចដើម្បីយក Hazelcast ។

ប្រៀបធៀប

ប៉ុន្តែ​បើ​ក្រឡេក​មើល​បេក្ខជន​ទាំង​៥​រូប​ត្រូវ​បាន​ពិពណ៌នា​យ៉ាង​ដូច្នេះ​ថា​ពួកគេ​ម្នាក់ៗ​ល្អ​ជាង​គេ។ តើធ្វើដូចម្តេចដើម្បីជ្រើសរើស? យើង​អាច​មើល​ឃើញ​ថា​មួយ​ណា​ដែល​ពេញ​និយម​បំផុត រក​មើល​ការ​ប្រៀប​ធៀប ហើយ​ការ​ឈឺ​ក្បាល​នឹង​បាត់​ទៅ។

យើងរកឃើញមួយដូចនេះ обзорជ្រើសរើសប្រព័ន្ធ 5 របស់យើង។

របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

នៅទីនេះពួកគេត្រូវបានតម្រៀប: Redis នៅកំពូល, Hazelcast ស្ថិតនៅលំដាប់ទីពីរ, Tarantool និង Ignite កំពុងទទួលបានប្រជាប្រិយភាព, EhCache បាននិងនៅដដែល។

ប៉ុន្តែសូមក្រឡេកមើល វិធីសាស្រ្តគណនា៖ តំណភ្ជាប់ទៅកាន់គេហទំព័រ ចំណាប់អារម្មណ៍ទូទៅនៅក្នុងប្រព័ន្ធ ការផ្តល់ជូនការងារ - អស្ចារ្យណាស់! នោះគឺនៅពេលដែលប្រព័ន្ធរបស់ខ្ញុំបរាជ័យ ខ្ញុំនឹងនិយាយថា “ទេ វាគួរឱ្យទុកចិត្ត! មានការផ្តល់ជូនការងារជាច្រើន ... " ការប្រៀបធៀបសាមញ្ញបែបនេះនឹងមិនធ្វើទេ។

ប្រព័ន្ធទាំងអស់នេះមិនគ្រាន់តែជាប្រព័ន្ធឃ្លាំងសម្ងាត់ប៉ុណ្ណោះទេ។ ពួកគេក៏មានមុខងារជាច្រើនផងដែរ រួមទាំងនៅពេលដែលទិន្នន័យមិនត្រូវបានបូមទៅម៉ាស៊ីនភ្ញៀវសម្រាប់ដំណើរការ ប៉ុន្តែផ្ទុយទៅវិញ៖ កូដដែលត្រូវប្រតិបត្តិលើទិន្នន័យផ្លាស់ទីទៅម៉ាស៊ីនមេ ត្រូវបានប្រតិបត្តិនៅទីនោះ ហើយលទ្ធផលត្រូវបានត្រឡប់មកវិញ។ ហើយពួកវាមិនត្រូវបានគេចាត់ទុកជាញឹកញាប់ថាជាប្រព័ន្ធដាច់ដោយឡែកសម្រាប់ឃ្លាំងសម្ងាត់នោះទេ។

មិនអីទេ សូមកុំបោះបង់ យើងស្វែងរកការប្រៀបធៀបដោយផ្ទាល់អំពីប្រព័ន្ធ។ ចូរយកជម្រើសកំពូលពីរ - Redis និង Hazelcast ។ យើងចាប់អារម្មណ៍លើល្បឿន ហើយយើងនឹងប្រៀបធៀបពួកវាដោយផ្អែកលើប៉ារ៉ាម៉ែត្រនេះ។

Hz ទល់នឹង Redis

យើងរកឃើញនេះ។ ការប្រៀបធៀប:
របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

ពណ៌ខៀវគឺ Redis ពណ៌ក្រហមគឺ Hazelcast ។ Hazelcast ឈ្នះគ្រប់ទីកន្លែង ហើយមានហេតុផលសម្រាប់រឿងនេះ៖ វាមានច្រើនខ្សែ ធ្វើឱ្យប្រសើរខ្ពស់ ខ្សែស្រឡាយនីមួយៗដំណើរការជាមួយភាគថាសផ្ទាល់ខ្លួន ដូច្នេះគ្មានការទប់ស្កាត់ទេ។ ហើយ Redis គឺ single-threaded វាមិនទទួលបានអត្ថប្រយោជន៍ពី CPU multi-core ទំនើបនោះទេ។ Hazelcast មាន I/O អសមកាល Redis-Jedis មានរន្ធបិទ។ យ៉ាងណាមិញ Hazelcast ប្រើពិធីការប្រព័ន្ធគោលពីរ ហើយ Redis គឺផ្តោតលើអត្ថបទ មានន័យថាវាមិនមានប្រសិទ្ធភាពទេ។

ក្នុង​ករណី​នេះ ចូរ​យើង​ងាក​ទៅ​រក​ប្រភព​ផ្សេង​ទៀត​នៃ​ការ​ប្រៀបធៀប។ តើគាត់នឹងបង្ហាញអ្វីដល់យើង?

Redis ទល់នឹង Hz

មួយទៀត ការប្រៀបធៀប:
របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

នៅទីនេះផ្ទុយទៅវិញពណ៌ក្រហមគឺ Redis ។ នោះគឺ Redis ធ្វើបានល្អជាង Hazelcast ទាក់ទងនឹងការអនុវត្ត។ Hazelcast បានឈ្នះការប្រៀបធៀបដំបូង Redis ឈ្នះលើកទីពីរ។ នៅ​ទី​នេះ បានពន្យល់យ៉ាងច្បាស់លាស់ថាហេតុអ្វីបានជា Hazelcast ឈ្នះការប្រៀបធៀបពីមុន។

វាប្រែថាលទ្ធផលនៃទីមួយគឺពិតជាត្រូវបានជួសជុល: Redis ត្រូវបានគេយកនៅក្នុងប្រអប់មូលដ្ឋាន ហើយ Hazelcast ត្រូវបានកែសម្រួលសម្រាប់ករណីសាកល្បង។ បន្ទាប់មកវាប្រែថា: ទីមួយ យើងមិនអាចទុកចិត្តនរណាម្នាក់បានទេ ហើយទីពីរ នៅពេលដែលយើងជ្រើសរើសប្រព័ន្ធមួយ យើងនៅតែត្រូវកំណត់រចនាសម្ព័ន្ធវាឱ្យបានត្រឹមត្រូវ។ ការកំណត់ទាំងនេះរួមមានប៉ារ៉ាម៉ែត្ររាប់សិប ស្ទើរតែរាប់រយ។

អ្រងួនដប

ហើយ​ខ្ញុំ​អាច​ពន្យល់​ពី​ដំណើរ​ការ​ទាំង​មូល​ដែល​យើង​បាន​ធ្វើ​ឥឡូវ​នេះ​ដោយ​ប្រើ​ពាក្យ​ប្រៀបធៀប​ដូច​ខាង​ក្រោម៖ «ការ​អង្រួន​ដប»។ នោះ​គឺ​ឥឡូវ​នេះ​អ្នក​មិន​ចាំបាច់​សរសេរ​កម្មវិធី​ទេ ឥឡូវ​រឿង​សំខាន់​គឺ​ត្រូវ​អាច​អាន stackoverflow ។ ហើយ​ខ្ញុំ​មាន​មនុស្ស​ម្នាក់​នៅ​ក្នុង​ក្រុម​របស់​ខ្ញុំ ជា​អ្នក​ជំនាញ​ម្នាក់ ដែល​ធ្វើ​ការ​បែប​នេះ​ក្នុង​គ្រា​ដ៏​លំបាក។

តើ​គាត់​កំពុង​ធ្វើអ្វី? គាត់ឃើញរបស់ដែលខូច ឃើញដានជង់ យកពាក្យខ្លះពីវា (មួយណាជាជំនាញរបស់គាត់ក្នុងកម្មវិធី) ស្វែងរកនៅលើ Google រកឃើញ stackoverflow ក្នុងចំណោមចម្លើយ។ ដោយមិនអាន ដោយមិនគិត ក្នុងចំណោមចម្លើយចំពោះសំណួរ គាត់បានជ្រើសរើសអ្វីដែលស្រដៀងនឹងប្រយោគ "ធ្វើនេះ ហើយនោះ" (ការជ្រើសរើសចម្លើយបែបនេះ គឺជាទេពកោសល្យរបស់គាត់ ព្រោះវាមិនមែនតែងតែជាចម្លើយដែលទទួលបានការចូលចិត្តបំផុតនោះទេ)។ អនុវត្ត, មើលទៅ: ប្រសិនបើមានអ្វីមួយបានផ្លាស់ប្តូរ, បន្ទាប់មកអស្ចារ្យ។ ប្រសិនបើវាមិនទាន់បានផ្លាស់ប្តូរទេ សូមបង្វិលវាមកវិញ។ ហើយបើកដំណើរការ-ពិនិត្យ-ស្វែងរកម្តងទៀត។ ហើយតាមរបៀបវិចារណញាណនេះ គាត់ធានាថាកូដដំណើរការបន្ទាប់ពីពេលខ្លះ។ គាត់​មិន​ដឹង​ពី​មូល​ហេតុ​អ្វី គាត់​មិន​ដឹង​ថា​គាត់​ធ្វើ​អ្វី គាត់​មិន​អាច​ពន្យល់​បាន។ តែ! ការឆ្លងមេរោគនេះដំណើរការ។ ហើយ "ភ្លើងបានរលត់ហើយ" ។ ឥឡូវនេះ ចូរយើងស្វែងយល់ថាតើយើងបានធ្វើអ្វី។ នៅពេលដែលកម្មវិធីដំណើរការ វាគឺជាលំដាប់នៃទំហំកាន់តែងាយស្រួល។ ហើយវាចំណេញពេលវេលាច្រើន។

វិធីសាស្រ្តនេះត្រូវបានពន្យល់យ៉ាងល្អជាមួយឧទាហរណ៍នេះ។

ធ្លាប់មានប្រជាប្រិយខ្លាំងណាស់ក្នុងការប្រមូលទូកក្ដោងដាក់ក្នុងដប។ ទន្ទឹមនឹងនេះទូកក្តោងមានទំហំធំនិងផុយស្រួយហើយកនៃដបគឺតូចចង្អៀតណាស់វាមិនអាចទៅរួចទេក្នុងការរុញវានៅខាងក្នុង។ តើធ្វើដូចម្តេចដើម្បីប្រមូលផ្តុំវា?

របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

មាន​វិធី​បែប​នេះ​គឺ​លឿន​និង​មាន​ប្រសិទ្ធ​ភាព​ខ្លាំង​ណាស់។

កប៉ាល់មានរបស់តូចៗជាច្រើន៖ ដំបង ខ្សែពួរ ក្ដោង កាវ។ យើងដាក់ទាំងអស់នេះក្នុងដប។
យើងយកដបដោយដៃទាំងពីរហើយចាប់ផ្តើមញ័រ។ យើងអង្រួននាង។ ហើយជាធម្មតាវាប្រែទៅជាសំរាមពេញលេញ។ ប៉ុន្តែ​ពេល​ខ្លះ។ ពេលខ្លះវាប្រែជាកប៉ាល់! ច្បាស់ជាងនេះទៅទៀត អ្វីដែលស្រដៀងនឹងកប៉ាល់។

យើងបង្ហាញអ្វីមួយនេះដល់នរណាម្នាក់៖ "Seryoga តើអ្នកឃើញទេ!" ហើយពីចម្ងាយវាមើលទៅដូចជាកប៉ាល់។ ប៉ុន្តែនេះមិនអាចអនុញ្ញាតឱ្យបន្តបានទេ។

មានវិធីមួយផ្សេងទៀត។ ពួកវាត្រូវបានប្រើប្រាស់ដោយបុរសដែលជឿនលឿនជាងមុន ដូចជាពួក Hacker ជាដើម។

ខ្ញុំ​បាន​ឲ្យ​បុរស​ម្នាក់​នេះ​ធ្វើ​កិច្ចការ​មួយ គាត់​បាន​ធ្វើ​គ្រប់​យ៉ាង​ហើយ​ចាកចេញ។ ហើយអ្នកមើលទៅ - វាមើលទៅដូចជារួចរាល់ហើយ។ ហើយមួយសន្ទុះក្រោយមក នៅពេលដែលលេខកូដត្រូវបញ្ចប់ វាចាប់ផ្តើមដោយសារតែគាត់... ជាការល្អដែលគាត់បានរត់ទៅឆ្ងាយហើយ។ ទាំងនេះគឺជាបុរសដែលប្រើឧទាហរណ៍នៃដបមួយនឹងធ្វើដូចនេះ: អ្នកឃើញកន្លែងដែលបាតគឺកញ្ចក់កោង។ ហើយ​វា​មិន​ច្បាស់​ទាំង​ស្រុង​ថា​តើ​វា​មាន​តម្លាភាព​ឬ​អត់។ បន្ទាប់មក "ពួក Hacker" កាត់បាតនេះ បញ្ចូលកប៉ាល់នៅទីនោះ បន្ទាប់មកបិទបាតម្តងទៀត ហើយវាហាក់ដូចជានោះហើយជារបៀបដែលវាត្រូវបានសន្មត់ថាជា។

តាមទស្សនៈនៃការកំណត់បញ្ហា អ្វីគ្រប់យ៉ាងហាក់ដូចជាត្រឹមត្រូវ។ ប៉ុន្តែការប្រើកប៉ាល់ជាឧទាហរណ៍៖ ហេតុអ្វីបានជាបង្កើតកប៉ាល់នេះទាំងស្រុង តើអ្នកណាត្រូវការវា? វាមិនផ្តល់មុខងារណាមួយឡើយ។ ជាធម្មតា កប៉ាល់បែបនេះគឺជាអំណោយដល់មនុស្សដែលមានឋានៈខ្ពស់ ដែលដាក់វានៅលើធ្នើរពីលើពួកគេ ដូចជានិមិត្តសញ្ញាមួយចំនួន ជាសញ្ញាសម្គាល់។ ហើយ​បើ​បុគ្គល​បែប​នេះ​ជា​ប្រធាន​អាជីវកម្ម​ធំ ឬ​មន្ត្រី​ថ្នាក់​ខ្ពស់ តើ​ទង់ជាតិ​ឈរ​យ៉ាង​ណា​ចំពោះ​ការ​លួច​កាច់​ក​ត្រូវ​កាត់​ចោល? វានឹងប្រសើរជាងប្រសិនបើគាត់មិនដែលដឹងអំពីវា។ ដូច្នេះ​តើ​ពួកគេ​បញ្ចប់​ដោយ​របៀប​ណា​ទើប​បង្កើត​កប៉ាល់​ទាំងនេះ​ដែល​អាច​ប្រគល់​ឱ្យ​មនុស្ស​សំខាន់​ម្នាក់?

កន្លែងសំខាន់តែមួយគត់ដែលអ្នកពិតជាមិនអាចធ្វើអ្វីបានអំពីរាងកាយ។ ហើយសំបករបស់កប៉ាល់គឺសមនឹងក។ ចំណែកឯកប៉ាល់ត្រូវបានប្រមូលផ្តុំនៅខាងក្រៅដប។ ប៉ុន្តែវាមិនមែនគ្រាន់តែជាការផ្គុំកប៉ាល់នោះទេ វាគឺជាសិប្បកម្មគ្រឿងអលង្ការពិតប្រាកដ។ ដងថ្លឹងពិសេសត្រូវបានបន្ថែមទៅសមាសធាតុដែលបន្ទាប់មកអនុញ្ញាតឱ្យពួកគេលើក។ ជាឧទាហរណ៍ ក្ដោងត្រូវបានបត់ នាំមកខាងក្នុងដោយប្រុងប្រយ័ត្ន ហើយបន្ទាប់មក ដោយមានជំនួយពីកន្ទុយ ពួកវាត្រូវទាញ និងលើកយ៉ាងជាក់លាក់ ដោយមានភាពត្រឹមត្រូវ។ លទ្ធផល​គឺ​ជា​ស្នាដៃ​សិល្បៈ​ដែល​អាច​ផ្តល់​អំណោយ​ដោយ​មនសិការ និង​មោទនភាព។

ហើយ​ប្រសិនបើ​យើង​ចង់​ឱ្យ​គម្រោង​នេះ​ទទួល​បាន​ជោគជ័យ ត្រូវតែ​មាន​ក្រុម​គ្រឿងអលង្ការ​យ៉ាងហោចណាស់​ម្នាក់​។ នរណាម្នាក់ដែលយកចិត្តទុកដាក់លើគុណភាពនៃផលិតផល និងគិតគូរពីគ្រប់ទិដ្ឋភាពទាំងអស់ ដោយមិនលះបង់អ្វីទាំងអស់ សូម្បីតែក្នុងគ្រាតានតឹង នៅពេលដែលមានកាលៈទេសៈតម្រូវឱ្យធ្វើការបន្ទាន់ដោយចំណាយលើការសំខាន់។ គម្រោងជោគជ័យទាំងអស់ដែលមាននិរន្តរភាព ដែលបានឈរលើការសាកល្បងនៃពេលវេលា គឺត្រូវបានបង្កើតឡើងនៅលើគោលការណ៍នេះ។ មានអ្វីមួយដែលច្បាស់លាស់ និងប្លែកពីគេ អ្វីមួយដែលទាញយកប្រយោជន៍ពីលទ្ធភាពដែលមានទាំងអស់។ នៅក្នុងឧទាហរណ៍ជាមួយកប៉ាល់នៅក្នុងដបការពិតដែលថាសំបកនៃកប៉ាល់ឆ្លងកាត់កត្រូវបានលេង។

ត្រឡប់ទៅភារកិច្ចជ្រើសរើសម៉ាស៊ីនមេឃ្លាំងសម្ងាត់របស់យើងវិញ តើវិធីសាស្ត្រនេះអាចត្រូវបានអនុវត្តយ៉ាងដូចម្តេច? ខ្ញុំផ្តល់ជូននូវជម្រើសនេះក្នុងការជ្រើសរើសពីប្រព័ន្ធទាំងអស់ដែលមាន - កុំអ្រងួនដប កុំជ្រើសរើស ប៉ុន្តែមើលអ្វីដែលពួកគេមានជាគោលការណ៍ អ្វីដែលត្រូវរកមើលនៅពេលជ្រើសរើសប្រព័ន្ធ។

កន្លែងដែលត្រូវរកមើលកដប

ចូរយើងព្យាយាមកុំអ្រងួនដប កុំឆ្លងកាត់អ្វីៗទាំងអស់ដែលនៅទីនោះម្តងមួយៗ ប៉ុន្តែសូមមើលថាតើបញ្ហាអ្វីខ្លះនឹងកើតឡើង ប្រសិនបើភ្លាមៗនោះ សម្រាប់កិច្ចការរបស់យើង រចនាប្រព័ន្ធបែបនេះដោយខ្លួនឯង។ ជាការពិតណាស់ យើងនឹងមិនប្រមូលផ្តុំកង់នោះទេ ប៉ុន្តែយើងនឹងប្រើដ្យាក្រាមនេះ ដើម្បីជួយយើងស្វែងយល់ថាតើចំណុចណាដែលត្រូវយកចិត្តទុកដាក់ក្នុងការពិពណ៌នាផលិតផល។ ចូរយើងគូរដ្យាក្រាមបែបនេះ។

របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

ប្រសិនបើប្រព័ន្ធត្រូវបានចែកចាយ នោះយើងនឹងមានម៉ាស៊ីនមេជាច្រើន (6)។ ចូរនិយាយថាមានបួន (វាងាយស្រួលក្នុងការដាក់ពួកវានៅក្នុងរូបភាព ប៉ុន្តែជាការពិត វាអាចមានច្រើនតាមដែលអ្នកចូលចិត្ត)។ ប្រសិនបើម៉ាស៊ីនមេស្ថិតនៅលើថ្នាំងផ្សេងគ្នា វាមានន័យថាពួកវាទាំងអស់ដំណើរការកូដមួយចំនួនដែលទទួលខុសត្រូវក្នុងការធានាថាថ្នាំងទាំងនេះបង្កើតជាចង្កោម ហើយក្នុងករណីមានការដាច់ ភ្ជាប់ និងទទួលស្គាល់គ្នាទៅវិញទៅមក។

យើងក៏ត្រូវការតក្កវិជ្ជាកូដ (2) ដែលតាមពិតអំពីឃ្លាំងសម្ងាត់។ អតិថិជនធ្វើអន្តរកម្មជាមួយកូដនេះតាមរយៈ API មួយចំនួន។ លេខកូដអតិថិជន (1) អាចស្ថិតនៅក្នុង JVM ដូចគ្នា ឬចូលប្រើវាតាមបណ្តាញ។ តក្កវិជ្ជាដែលបានអនុវត្តនៅខាងក្នុងគឺការសម្រេចចិត្តថាតើវត្ថុមួយណាត្រូវទុកក្នុងឃ្លាំងសម្ងាត់ និងមួយណាដែលត្រូវបោះចោល។ យើងប្រើអង្គចងចាំ (3) ដើម្បីរក្សាទុកឃ្លាំងសម្ងាត់ ប៉ុន្តែប្រសិនបើចាំបាច់ យើងអាចរក្សាទុកទិន្នន័យមួយចំនួននៅលើថាស (4) ។

តោះមើលផ្នែកណាដែលបន្ទុកនឹងកើតឡើង។ តាមពិត រាល់ព្រួញ និងគ្រប់ថ្នាំងទាំងអស់នឹងត្រូវបានផ្ទុក។ ទីមួយ រវាងកូដម៉ាស៊ីនភ្ញៀវ និង api ប្រសិនបើនេះគឺជាការទំនាក់ទំនងបណ្តាញ ការធ្លាក់ចុះអាចគួរឱ្យកត់សម្គាល់។ ទីពីរនៅក្នុងក្របខ័ណ្ឌនៃ api ខ្លួនវា - ប្រសិនបើយើងធ្វើឱ្យវាហួសប្រមាណជាមួយនឹងតក្កវិជ្ជាស្មុគស្មាញនោះយើងអាចមានបញ្ហាជាមួយស៊ីភីយូ។ ហើយវានឹងល្អប្រសិនបើតក្កវិជ្ជាមិនខ្ជះខ្ជាយពេលវេលាលើការចងចាំ។ ហើយនៅតែមានអន្តរកម្មជាមួយប្រព័ន្ធឯកសារ - នៅក្នុងកំណែធម្មតានេះគឺ serialize / restore និងសរសេរ / អាន។

បន្ទាប់គឺអន្តរកម្មជាមួយចង្កោម។ ភាគច្រើនទំនងជាវានឹងស្ថិតនៅក្នុងប្រព័ន្ធតែមួយ ប៉ុន្តែវាអាចដាច់ដោយឡែកពីគ្នា។ នៅទីនេះអ្នកក៏ត្រូវយកទៅក្នុងគណនីផ្ទេរទិន្នន័យទៅវា ល្បឿននៃសៀរៀលទិន្នន័យ និងអន្តរកម្មរវាងចង្កោម។

ឥឡូវនេះ ម៉្យាងវិញទៀត យើងអាចស្រមៃថា "តើប្រអប់លេខមួយណានឹងប្រែជា" នៅក្នុងប្រព័ន្ធឃ្លាំងសម្ងាត់ នៅពេលដំណើរការសំណើពីកូដរបស់យើង ហើយម្យ៉ាងវិញទៀត យើងអាចប៉ាន់ស្មានបានថា តើលេខកូដរបស់យើងនឹងបង្កើតសំណើអ្វីខ្លះដល់ប្រព័ន្ធនេះ។ នេះគឺគ្រប់គ្រាន់ដើម្បីធ្វើជម្រើសច្រើន ឬតិច - ដើម្បីជ្រើសរើសប្រព័ន្ធសម្រាប់ករណីប្រើប្រាស់របស់យើង។

ហាហ្សែល

តោះមើលរបៀបអនុវត្តការរលួយនេះទៅក្នុងបញ្ជីរបស់យើង។ ឧទាហរណ៍ Hazelcast ។

ដើម្បីដាក់/យកទិន្នន័យពី Hazelcast កូដអតិថិជនចូលប្រើ (1) api ។ Hz អនុញ្ញាតឱ្យអ្នកដំណើរការម៉ាស៊ីនមេដូចដែលបានបង្កប់ ហើយក្នុងករណីនេះ ការចូលប្រើ api គឺជាការហៅតាមវិធីសាស្ត្រនៅខាងក្នុង JVM ដែលអាចចាត់ទុកថាឥតគិតថ្លៃ។

ដើម្បីឱ្យតក្កវិជ្ជានៅក្នុង (2) ដំណើរការ Hz ពឹងផ្អែកលើ hash នៃអារេបៃនៃគ្រាប់ចុចសៀរៀល - នោះគឺ គ្រាប់ចុចនឹងត្រូវបានសៀរៀលនៅក្នុងករណីណាមួយ។ នេះ​គឺ​ជា​ការ​លើស​ចំណុះ​ដែល​ជៀស​មិន​រួច​សម្រាប់ Hz ។
យុទ្ធសាស្ត្របណ្តេញចេញត្រូវបានអនុវត្តយ៉ាងល្អ ប៉ុន្តែសម្រាប់ករណីពិសេស អ្នកអាចបន្ថែមផ្ទាល់ខ្លួនរបស់អ្នក។ អ្នកមិនចាំបាច់ព្រួយបារម្ភអំពីផ្នែកនេះទេ។

ឧបករណ៍ផ្ទុក (4) អាចភ្ជាប់បាន។ អស្ចារ្យ។ អន្តរកម្ម (5) សម្រាប់បង្កប់អាចត្រូវបានចាត់ទុកថាជាបន្ទាន់។ ការផ្លាស់ប្តូរទិន្នន័យរវាងថ្នាំងនៅក្នុងចង្កោម (6) - បាទ វាមាន។ នេះ​ជា​ការ​វិនិយោគ​ក្នុង​ការ​អត់ឱន​ចំពោះ​កំហុស​ដោយ​ចំណាយ​ល្បឿន។ មុខងារ Hz Near-cache អនុញ្ញាតឱ្យអ្នកកាត់បន្ថយតម្លៃ - ទិន្នន័យដែលទទួលបានពីថ្នាំងផ្សេងទៀតនៅក្នុងចង្កោមនឹងត្រូវបានទុកក្នុងឃ្លាំងសម្ងាត់។

តើអាចធ្វើអ្វីបានក្នុងលក្ខខណ្ឌបែបនេះដើម្បីបង្កើនល្បឿន?

ជាឧទាហរណ៍ ដើម្បីជៀសវាងការធ្វើសៀរៀលនៃសោក្នុង (2) - ភ្ជាប់ឃ្លាំងសម្ងាត់មួយទៀតនៅលើកំពូលនៃ Hazelcast សម្រាប់ទិន្នន័យក្តៅបំផុត។ Sportmaster បានជ្រើសរើសកាហ្វេអ៊ីនសម្រាប់គោលបំណងនេះ។

សម្រាប់ការបង្វិលនៅកម្រិត (6) Hz ផ្តល់នូវការផ្ទុកពីរប្រភេទ៖ IMap និង ReplicatedMap ។
របៀបដែលយើងនៅ Sportmaster បានជ្រើសរើសប្រព័ន្ធឃ្លាំងសម្ងាត់។ ផ្នែកទី 1

វាមានតម្លៃនិយាយអំពីរបៀបដែល Hazelcast ចូលទៅក្នុងជង់បច្ចេកវិទ្យា Sportmaster ។

ក្នុងឆ្នាំ 2012 នៅពេលដែលយើងកំពុងធ្វើការលើការសាកល្បងដំបូងនៃគេហទំព័រនាពេលអនាគត វាគឺជា Hazelcast ដែលប្រែទៅជាតំណភ្ជាប់ដំបូងដែលម៉ាស៊ីនស្វែងរកត្រឡប់មកវិញ។ អ្នកស្គាល់គ្នាបានចាប់ផ្តើម "ជាលើកដំបូង" - យើងចាប់អារម្មណ៍ដោយការពិតដែលថាគ្រាន់តែពីរម៉ោងក្រោយមកនៅពេលដែលយើងចុច Hz ចូលទៅក្នុងប្រព័ន្ធវាដំណើរការ។ ហើយវាដំណើរការបានល្អ។ នៅចុងបញ្ចប់នៃថ្ងៃយើងបានបញ្ចប់ការធ្វើតេស្តមួយចំនួនហើយសប្បាយចិត្ត។ ហើយ​កម្លាំង​បម្រុង​នេះ​គឺ​គ្រប់គ្រាន់​ដើម្បី​យក​ឈ្នះ​ការ​ភ្ញាក់ផ្អើល​ដែល​ Hz បាន​កើនឡើង​តាម​ពេលវេលា។ ឥឡូវនេះក្រុម Sportmaster មិនមានហេតុផលដើម្បីបោះបង់ចោល Hazelcast ទេ។

ប៉ុន្តែអំណះអំណាងដូចជា "តំណភ្ជាប់ដំបូងនៅក្នុងម៉ាស៊ីនស្វែងរក" និង "HelloWorld ត្រូវបានប្រមូលផ្តុំយ៉ាងឆាប់រហ័ស" ជាការពិតគឺជាករណីលើកលែង និងលក្ខណៈពិសេសមួយនៃពេលដែលជម្រើសបានកើតឡើង។ ការធ្វើតេស្តពិតប្រាកដសម្រាប់ប្រព័ន្ធដែលបានជ្រើសរើសចាប់ផ្តើមជាមួយនឹងការចេញផ្សាយទៅក្នុងផលិតកម្ម ហើយវាគឺនៅដំណាក់កាលនេះដែលអ្នកគួរតែយកចិត្តទុកដាក់នៅពេលជ្រើសរើសប្រព័ន្ធណាមួយ រួមទាំងឃ្លាំងសម្ងាត់ផងដែរ។ តាមពិតក្នុងករណីរបស់យើងយើងអាចនិយាយបានថាយើងបានជ្រើសរើស Hazelcast ដោយចៃដន្យ ប៉ុន្តែក្រោយមកវាបានប្រែក្លាយថាយើងបានជ្រើសរើសត្រឹមត្រូវ។

សម្រាប់ការផលិត មានសារៈសំខាន់ជាងនេះទៅទៀត៖ ការត្រួតពិនិត្យ ការដោះស្រាយការបរាជ័យលើថ្នាំងនីមួយៗ ការចម្លងទិន្នន័យ ការចំណាយលើការធ្វើមាត្រដ្ឋាន។ នោះគឺវាគួរអោយយកចិត្តទុកដាក់ចំពោះកិច្ចការដែលនឹងកើតឡើងកំឡុងពេលថែទាំប្រព័ន្ធ - នៅពេលដែលការផ្ទុកឡើងខ្ពស់ជាងការគ្រោងទុករាប់សិបដង នៅពេលដែលយើងបង្ហោះអ្វីមួយខុសកន្លែងដោយចៃដន្យ នៅពេលដែលយើងត្រូវដាក់ចេញកំណែថ្មី នៃកូដ ជំនួសទិន្នន័យ ហើយធ្វើវាដោយមិនបានកត់សម្គាល់សម្រាប់អតិថិជន។

សម្រាប់តម្រូវការទាំងអស់នេះ Hazelcast ពិតជាសាកសមនឹងវិក័យប័ត្រ។

នៅ​មាន​ជា​បន្ត​ទៀត

ប៉ុន្តែ Hazelcast មិនមែនជា panacea ទេ។ នៅឆ្នាំ 2017 យើងបានជ្រើសរើស Hazelcast សម្រាប់ឃ្លាំងសម្ងាត់គ្រប់គ្រង ដោយគ្រាន់តែផ្អែកលើចំណាប់អារម្មណ៍ល្អពីបទពិសោធន៍កន្លងមក។ រឿងនេះដើរតួយ៉ាងសំខាន់នៅក្នុងរឿងកំប្លែងដ៏ឃោរឃៅបំផុត ដោយសារតែការដែលយើងបានរកឃើញថាខ្លួនយើងស្ថិតក្នុងស្ថានភាពលំបាក ហើយ "វីរភាព" បានចេញពីវាអស់រយៈពេល 60 ថ្ងៃ។ ប៉ុន្តែបន្ថែមទៀតនៅលើវានៅក្នុងផ្នែកបន្ទាប់។

ក្នុងពេលនេះ... Happy New Code!

ប្រភព: www.habr.com

បន្ថែមមតិយោបល់