කනස්සල්ල නතර කර මොනොලිත් නොමැතිව ජීවත් වීමට පටන් ගන්නේ කෙසේද?

කනස්සල්ල නතර කර මොනොලිත් නොමැතිව ජීවත් වීමට පටන් ගන්නේ කෙසේද?

අපි හැමෝම කතන්දර වලට කැමතියි. අපි ගින්න වටා වාඩි වී අපගේ අතීත ජයග්‍රහණ, සටන් හෝ සරලව අපගේ සේවා පළපුරුද්ද ගැන කතා කිරීමට කැමතියි.

අද එහෙම දවසක් විතරයි. ඔබ දැන් ගින්නෙහි නොසිටියත්, අපට ඔබ වෙනුවෙන් කතාවක් තිබේ. අපි Tarantool මත ගබඩා සමඟ වැඩ ආරම්භ කළ ආකාරය පිළිබඳ කතාව.

වරෙක, අපගේ සමාගමට “මොනොලිත්” කිහිපයක් සහ සැමට එක් “සිවිලිමයක්” තිබූ අතර, මෙම මොනොලිත් සෙමින් නමුත් නිසැකවම ළඟා වෙමින්, අපගේ සමාගමේ පියාසැරිය, අපගේ සංවර්ධනය සීමා කරයි. ඒ වගේම පැහැදිලි අවබෝධයක් තිබුණා: දවසක අපි මේ සිවිලිමට තදින් පහර දෙනවා.

උපකරණයේ සිට ව්‍යාපාරික තර්කනය දක්වා සියල්ල සහ සියල්ල වෙන් කිරීම දැන් පවතින මතවාදයයි. ප්රතිඵලයක් වශයෙන්, අපි, උදාහරණයක් ලෙස, ජාල මට්ටමින් ප්රායෝගිකව ස්වාධීන වන DC දෙකක් ඇත. එවිට සෑම දෙයක්ම සම්පූර්ණයෙන්ම වෙනස් විය.

අද වන විට, CI/CD, K8S, ආදියෙහි වෙනස්කම් සිදු කිරීම සඳහා මෙවලම් සහ මෙවලම් බොහොමයක් තිබේ. “මොනොලිතික්” කාලය තුළ අපට එතරම් විදේශීය වචන අවශ්‍ය නොවීය. දත්ත ගබඩාවේ "ගබඩාව" සරලව නිවැරදි කිරීමට ප්රමාණවත් විය.

නමුත් කාලය ඉදිරියට ගිය අතර, ඉල්ලීම් ගණනද එය සමඟ ඉදිරියට ගියේය, සමහර විට අපගේ හැකියාවන් ඉක්මවා RPS වෙඩි තබයි. CIS රටවල් වෙළඳපොළට ඇතුළු වීමත් සමඟම, පළමු මොනොලිත් හි දත්ත සමුදා ප්‍රොසෙසරයේ බර 90% ට වඩා අඩු නොවූ අතර RPS 2400 මට්ටමේ පැවතුනි. මේවා කුඩා තේරීම්කරුවන් පමණක් නොව, විශාල විමසුම් විශාල IO පසුබිමට එරෙහිව දත්තවලින් අඩක් පමණ ධාවනය කළ හැකි චෙක්පත් සහ එකතු කිරීම් සමූහයක්.

සම්පූර්ණ කළු සිකුරාදා විකුණුම් දර්ශනය වීමට පටන් ගත් විට - සහ වයිල්ඩ්බෙරි රුසියාවේ ඒවා පැවැත්වූ පළමු අයගෙන් එකකි - තත්වය සම්පූර්ණයෙන්ම කණගාටුදායක විය. සියල්ලට පසු, එවැනි දිනවල බර තුන් ගුණයකින් වැඩි වේ.
ඔහ්, මේ "ඒකශිල කාලය"! ඔබ සමාන දෙයක් අත්විඳ ඇති බව මට විශ්වාසයි, මෙය ඔබට සිදු වන්නේ කෙසේදැයි ඔබට තවමත් තේරුම් ගත නොහැක.

ඔබට කුමක් කළ හැකිද - විලාසිතා තාක්ෂණයට ආවේනික වේ. මීට වසර 5 කට පමණ පෙර, මෙම mods වලින් එකක් .NET සහ MS SQL සේවාදායකයේ පවතින වෙබ් අඩවියක ස්වරූපයෙන් නැවත සිතා බැලීමට අපට සිදු විය, එය වෙබ් අඩවියේම සියලු තර්කයන් ප්‍රවේශමෙන් ගබඩා කර ඇත. මම එය කොතරම් පරිස්සමින් තබා ගත්තාද යත්, එවැනි මොනොලිත් එකක් කැපීම දිගු හා පහසු සතුටක් නොවේ.
කුඩා අපගමනය.

විවිධ සිදුවීම් වලදී මම මෙසේ කියමි: "ඔබ මොනොලිත් එකක් දුටුවේ නැත්නම්, ඔබ වැඩුනේ නැත!" මෙම කාරණය සම්බන්ධයෙන් ඔබේ මතය ගැන මම උනන්දු වෙමි, කරුණාකර එය අදහස් දැක්වීමේදී ලියන්න.

ගිගුරුම් හඬක්

අපි අපේ "ගිනි මැලය" වෙත ආපසු යමු. "මොනොලිතික්" ක්‍රියාකාරීත්වයේ බර බෙදා හැරීම සඳහා, විවෘත කේත තාක්ෂණයන් මත පදනම්ව පද්ධතිය ක්ෂුද්‍ර සේවා වලට බෙදීමට අපි තීරණය කළෙමු. මන්ද, අවම වශයෙන්, ඒවා පරිමාණයට වඩා ලාභදායී වේ. තවද අපට පරිමාණය කිරීමට සිදුවනු ඇති බව (සහ ගොඩක්) අපට 100% අවබෝධයක් තිබුණි. ඇත්ත වශයෙන්ම, ඒ වන විටත් අසල්වැසි රටවල වෙළඳපොළට ඇතුළු වීමට හැකි වූ අතර, ලියාපදිංචි කිරීම් සංඛ්යාව මෙන්ම ඇණවුම් සංඛ්යාව ද වඩාත් ශක්තිමත්ව වර්ධනය වීමට පටන් ගත්තේය.

මොනොලිත් සිට ක්ෂුද්‍ර සේවා වෙත පිටවීම සඳහා පළමු අපේක්ෂකයින් විශ්ලේෂණය කිරීමෙන් පසු, ඒවායේ ලිවීමෙන් 80% ක්ම පැමිණෙන්නේ පසු කාර්යාල පද්ධතිවලින් සහ ඉදිරිපස කාර්යාලයෙන් කියවීමෙන් බව අපට වැටහුණි. පළමුවෙන්ම, මෙය අපට වැදගත් උප පද්ධති කිහිපයක් ගැන සැලකිලිමත් විය - පරිශීලක දත්ත සහ අමතර පාරිභෝගික වට්ටම් සහ කූපන් පත් පිළිබඳ තොරතුරු මත පදනම්ව භාණ්ඩවල අවසාන පිරිවැය ගණනය කිරීමේ පද්ධතියකි.

ඉන්ඩෙන්ට් කර ඇත. දැන් එය සිතීම බියජනක ය, නමුත් ඉහත සඳහන් උප පද්ධති වලට අමතරව, නිෂ්පාදන නාමාවලි, පරිශීලක සාප්පු කරත්තයක්, නිෂ්පාදන සෙවුම් පද්ධතියක්, නිෂ්පාදන නාමාවලි සඳහා පෙරීමේ පද්ධතියක් සහ විවිධ වර්ගයේ නිර්දේශ පද්ධති ද අපගේ ඒකලිතයෙන් ඉවත් කරන ලදී. ඒ සෑම එකක්ම ක්‍රියාත්මක කිරීම සඳහා, පටු ලෙස සකස් කරන ලද පද්ධතිවල වෙනම පන්ති ඇත, නමුත් වරෙක ඔවුන් සියල්ලෝම එකම “නිවසක” ජීවත් වූහ.

අපි වහාම අපගේ සේවාදායකයින් පිළිබඳ දත්ත ෂර්ඩ් පද්ධතියට මාරු කිරීමට සැලසුම් කළෙමු. භාණ්ඩවල අවසාන පිරිවැය ගණනය කිරීම සඳහා ක්‍රියාකාරීත්වය ඉවත් කිරීම කියවීම සඳහා හොඳ පරිමාණයක් අවශ්‍ය විය, මන්ද එය විශාලතම RPS භාරය නිර්මාණය කළ අතර දත්ත සමුදාය සඳහා ක්‍රියාත්මක කිරීමට වඩාත්ම දුෂ්කර වූ බැවිනි (ගණනය කිරීමේ ක්‍රියාවලියට බොහෝ දත්ත සම්බන්ධ වේ).

එහි ප්රතිඵලයක් වශයෙන්, අපි Tarantool සමඟ හොඳින් ගැලපෙන යෝජනා ක්රමයක් ඉදිරිපත් කළා.

එකල, ක්ෂුද්‍ර සේවා ක්‍රියාත්මක කිරීම සඳහා, අථත්‍ය සහ දෘඩාංග යන්ත්‍ර පිළිබඳ දත්ත මධ්‍යස්ථාන කිහිපයක් සමඟ වැඩ කිරීමේ යෝජනා ක්‍රම තෝරා ගන්නා ලදී. රූපවල පෙන්වා ඇති පරිදි, Tarantool අනුරූකරණ විකල්ප මාස්ටර්-මාස්ටර් සහ මාස්ටර්-ස්ලේව් යන ආකාර දෙකෙහිම යොදන ලදී.

කනස්සල්ල නතර කර මොනොලිත් නොමැතිව ජීවත් වීමට පටන් ගන්නේ කෙසේද?
නිර්මාණ ශිල්පය. විකල්ප 1. පරිශීලක සේවාව

දැනට, කොටස් 24ක් ඇත, ඒ සෑම එකක්ම අවස්ථා 2ක් (එක් එක් DC සඳහා එකක්) ඇත, සියල්ල මාස්ටර්-මාස්ටර් මාදිලියේ ඇත.

දත්ත සමුදායේ ඉහලින් දත්ත සමුදා අනුරූ වලට ප්‍රවේශ වන යෙදුම් වේ. Tarantool Go ධාවක අතුරුමුහුණත ක්‍රියාත්මක කරන අපගේ අභිරුචි පුස්තකාලය හරහා යෙදුම් Tarantool සමඟ ක්‍රියා කරයි. ඇය සියලු අනුරූ දකින අතර කියවීමට හා ලිවීමට ස්වාමියා සමඟ වැඩ කළ හැකිය. අත්‍යවශ්‍යයෙන්ම, එය අනුරූ තෝරා ගැනීම, නැවත උත්සාහ කිරීම, පරිපථ කඩනයක් සහ අනුපාත සීමාවක් සඳහා තර්කයක් එක් කරන අනුරූ කට්ටල ආකෘතිය ක්‍රියාත්මක කරයි.

මෙම අවස්ථාවෙහිදී, ෂර්ඩ් වල සන්දර්භය තුළ අනුරූ තේරීම් ප්‍රතිපත්තිය වින්‍යාසගත කළ හැකිය. උදාහරණයක් ලෙස, රවුන්ඩ්රොබින්.

කනස්සල්ල නතර කර මොනොලිත් නොමැතිව ජීවත් වීමට පටන් ගන්නේ කෙසේද?
නිර්මාණ ශිල්පය. විකල්ප 2. භාණ්ඩවල අවසාන පිරිවැය ගණනය කිරීම සඳහා සේවාව

මාස කිහිපයකට පෙර, භාණ්ඩවල අවසාන පිරිවැය ගණනය කිරීම සඳහා වන ඉල්ලීම් බොහොමයක් නව සේවාවක් වෙත ගිය අතර, එය ප්‍රතිපත්තිමය වශයෙන්, දත්ත සමුදායන් නොමැතිව ක්‍රියා කරයි, නමුත් ටික කලකට පෙර සෑම දෙයක්ම 100% ක් සකසන ලද්දේ ටැරන්ටූල් සමඟ සේවාවක් මගිනි.

සේවා දත්ත සමුදාය සින්ක්‍රොනයිසර් දත්ත රැස් කරන ප්‍රධාන 4 කින් සමන්විත වන අතර, මෙම එක් එක් අනුකරණ ප්‍රධානීන් දත්ත කියවීමට පමණක් අනුරූ වෙත බෙදා හැරේ. සෑම ස්වාමියෙකුටම එවැනි අනුරූ 15ක් පමණ ඇත.

පළමු හෝ දෙවන යෝජනා ක්‍රමයේදී, එක් DC එකක් නොමැති නම්, යෙදුමට දෙවනුව දත්ත ලබා ගත හැක.

ටැරන්ටූල් හි අනුවර්තනය තරමක් නම්‍යශීලී වන අතර ධාවන වේලාවේදී වින්‍යාසගත කළ හැකි බව සඳහන් කිරීම වටී. වෙනත් පද්ධතිවල දුෂ්කරතා මතු විය. උදාහරණයක් ලෙස, PostgreSQL හි max_wal_senders සහ max_replication_slots පරාමිති වෙනස් කිරීම සඳහා විශාරද නැවත ආරම්භ කිරීම අවශ්‍ය වේ, සමහර අවස්ථාවලදී යෙදුම සහ DBMS අතර සම්බන්ධතා විසන්ධි වීමට හේතු විය හැක.

සොයන්න, ඔබ සොයා ගනු ඇත!

ඇයි අපි එය "සාමාන්‍ය මිනිසුන් මෙන්" නොකළ නමුත් අසාමාන්‍ය ක්‍රමයක් තෝරා ගත්තේ? එය සාමාන්යයෙන් සලකනු ලබන දේ මත රඳා පවතී. බොහෝ අය සාමාන්‍යයෙන් Mongo වලින් පොකුරක් සාදා එය භූ-බෙදාහැරි DC තුනක් හරහා විහිදුවති.

ඒ වෙනකොට අපිට රෙඩිස් ව්‍යාපෘති දෙකක් තිබුණා. පළමුවැන්න හැඹිලියක් වූ අතර දෙවැන්න ඉතා වැදගත් නොවන දත්ත සඳහා ස්ථීර ගබඩාවක් විය. එය ඔහුට තරමක් අපහසු විය, අර්ධ වශයෙන් අපගේ වරදින්. සමහර විට තරමක් විශාල වෙළුම් යතුරේ තිබූ අතර වරින් වර වෙබ් අඩවිය අසනීප විය. අපි මෙම පද්ධතිය මාස්ටර්-ස්ලේව් අනුවාදයේ භාවිතා කළෙමු. තවද ස්වාමියාට යමක් සිදුවී අනුකරණය බිඳවැටුණු අවස්ථා බොහෝය.

එනම්, Redis රාජ්ය නොවන කාර්යයන් සඳහා, රාජ්ය නොවන කාර්යයන් සඳහා හොඳයි. ප්‍රතිපත්තිමය වශයෙන්, එය බොහෝ ගැටලු විසඳීමට ඉඩ දුන්නේ, නමුත් ඒවා දර්ශක යුගලයක් සහිත ප්‍රධාන අගය විසඳුම් නම් පමණි. නමුත් රෙඩිස් එකල නොපසුබට උත්සාහයෙන් හා අනුකරණයෙන් තරමක් දුක් විය. මීට අමතරව, කාර්ය සාධනය පිළිබඳ පැමිණිලි තිබුණි.

අපි MySQL සහ PostgreSQL ගැන හිතුවා. නමුත් පළමුවැන්න කෙසේ හෝ අප සමඟ සම්බන්ධ නොවූ අතර දෙවැන්න තරමක් සංකීර්ණ නිෂ්පාදනයක් වන අතර එය මත සරල සේවාවන් ගොඩනැගීම නුසුදුසු වනු ඇත.
අපි RIAK, Cassandra, ප්‍රස්ථාර දත්ත ගබඩාවක් පවා උත්සාහ කළා. මේ සියල්ල සේවා නිර්මාණය කිරීම සඳහා සාමාන්‍ය විශ්වීය මෙවලමක භූමිකාවට නොගැලපෙන තරමක් වැදගත් විසඳුම් වේ.

අවසානයේදී අපි ටැරන්ටූල් හි පදිංචි විය.

එය 1.6 අනුවාදයේ ඇති විට අපි එය වෙත හැරෙමු. ප්රධාන අගයේ සහජීවනය සහ සම්බන්ධතා දත්ත ගබඩාවක ක්රියාකාරිත්වය මගින් අපි ඒ ගැන උනන්දු විය. ද්විතියික දර්ශක, ගනුදෙනු සහ අවකාශයන් ඇත, මේවා වගු වැනි ය, නමුත් සරල නොවේ, ඔබට ඒවායේ විවිධ තීරු ගණන ගබඩා කළ හැකිය. නමුත් ටැරන්ටූල් හි ඝාතක ලක්ෂණය වූයේ ප්‍රධාන වටිනාකම සහ ගණුදෙණුව සමඟ ඒකාබද්ධ වූ ද්විතියික දර්ශකයි.

කතාබස් කිරීමට උදව් කිරීමට සූදානම් ප්‍රතිචාර දක්වන රුසියානු භාෂාව කතා කරන ප්‍රජාව ද භූමිකාවක් ඉටු කළහ. අපි මෙය සක්‍රියව භාවිතා කර කෙලින්ම කතාබස් තුළ ජීවත් වෙමු. පැහැදිලි වැරදි සහ වැරදි නොමැතිව විනීත ස්ථීරභාවය ගැන අමතක නොකරන්න. ඔබ ටැරන්ටූල් සමඟ අපගේ ඉතිහාසය දෙස බැලුවහොත්, ප්‍රතිනිර්මාණය කිරීමේදී අපට බොහෝ වේදනාවන් සහ අසාර්ථකත්වයන් තිබුණි, නමුත් එහි දෝෂය නිසා අපට කිසි විටෙකත් දත්ත අහිමි නොවීය!

ක්රියාත්මක කිරීම රළු ආරම්භයක් විය

එකල අපගේ ප්‍රධාන සංවර්ධන තොගය වූයේ ටැරන්ටූල් සඳහා සම්බන්ධකයක් නොතිබූ .NET ය. අපි වහාම Go හි යමක් කිරීමට පටන් ගත්තෙමු. ලුවා එක්කත් ඒක හොඳට වැඩ කළා. එකල ප්‍රධාන ගැටළුව වූයේ නිදොස්කරණයයි: .NET හි මේ සමඟ සියල්ල විශිෂ්ටයි, නමුත් ඉන් පසුව ඔබට ලඝු-සටහන් හැර දෝෂහරණයක් නොමැති විට, කාවැද්දූ Lua ලෝකයට ඇද වැටීම දුෂ්කර විය. ඊට අමතරව, කිසියම් හේතුවක් නිසා වරින් වර අනුවර්තනය පහත වැටුණි, එබැවින් මට ටැරන්ටූල් එන්ජිමේ ව්‍යුහය සොයා බැලීමට සිදු විය. කතාබස් මේ සඳහා උපකාරී වූ අතර, අඩු වශයෙන්, ලේඛනගත කිරීම; සමහර විට අපි කේතය දෙස බැලුවෙමු. එකල ලියකියවිලි එසේ විය.

ඉතින්, මාස කිහිපයක් පුරාවට, මම ටැරන්ටූල් සමඟ වැඩ කිරීමෙන් මගේ හිස ඔසවමින් හොඳ ප්‍රතිඵල ලබා ගැනීමට සමත් විය. අපි නව ක්ෂුද්‍ර සේවා පිහිටුවීමට උපකාරී වූ git හි විමර්ශන වර්ධනයන් සම්පාදනය කළෙමු. උදාහරණයක් ලෙස, කාර්යයක් මතු වූ විට: වෙනත් ක්ෂුද්‍ර සේවාවක් නිර්මාණය කිරීම සඳහා, සංවර්ධකයා ගබඩාවේ ඇති යොමු විසඳුමේ ප්‍රභව කේතය දෙස බැලූ අතර නව එකක් නිර්මාණය කිරීමට සතියකට වඩා ගත නොවීය.

මේවා විශේෂ අවස්ථා විය. සාම්ප්‍රදායිකව, ඔබට ඊළඟ මේසයේ සිටින පරිපාලකයා වෙත ගොස් “මට අතථ්‍ය යන්ත්‍රයක් ලබා දෙන්න” යනුවෙන් අසන්න. මිනිත්තු තිහකට පමණ පසු මෝටර් රථය දැනටමත් ඔබ සමඟ විය. ඔබ ඔබම සම්බන්ධ කර, සියල්ල ස්ථාපනය කර, ගමනාගමනය ඔබ වෙත එවන ලදී.

අද මෙය තවදුරටත් ක්‍රියා නොකරනු ඇත: ඔබට සේවාවට අධීක්‍ෂණය සහ ලොග් වීම එක් කිරීමට, පරීක්ෂණ සමඟ ක්‍රියාකාරීත්වය ආවරණය කිරීමට, අතථ්‍ය යන්ත්‍රයක් ඇණවුම් කිරීමට හෝ Kuber වෙත බෙදා හැරීමට අවශ්‍ය වේ. පොදුවේ ගත් කල, මෙය වඩා හොඳ වනු ඇත, එය වැඩි කාලයක් ගත වුවද වඩාත් කරදරකාරී වනු ඇත.

බෙදලා පාලනය කරන්න. Lua සමඟ ඇති ගනුදෙනුව කුමක්ද?

බරපතල උභතෝකෝටිකයක් ඇති විය: සමහර කණ්ඩායම් වලට Lua හි බොහෝ තාර්කික සේවාවක් සඳහා විශ්වාසනීය ලෙස වෙනස්කම් කිරීමට නොහැකි විය. මෙය බොහෝ විට සේවාව ක්‍රියා විරහිත වීමත් සමඟ විය.

එනම්, සංවර්ධකයින් යම් ආකාරයක වෙනසක් සූදානම් කරයි. Tarantool සංක්‍රමණය කිරීම ආරම්භ කරයි, නමුත් අනුරුව තවමත් පැරණි කේතය සමඟ ඇත; සමහර DDL හෝ වෙනත් යමක් අනුකරණය හරහා එහි පැමිණෙන අතර, එය සැලකිල්ලට නොගැනීම නිසා කේතය සරලව කඩා වැටේ. එහි ප්‍රතිඵලයක් ලෙස, පරිපාලකයින් සඳහා වන යාවත්කාලීන ක්‍රියා පටිපාටිය A4 පත්‍රයේ දක්වා ඇත: අනුකරණය නැවැත්වීම, මෙය යාවත්කාලීන කිරීම, අනුකරණය ක්‍රියාත්මක කිරීම, මෙහි අක්‍රිය කිරීම, එහි යාවත්කාලීන කිරීම. නපුරු සිහිනය!

ප්රතිඵලයක් වශයෙන්, දැන් අපි බොහෝ විට Lua හි කිසිවක් කිරීමට උත්සාහ කරමු. iproto (සේවාදායකය සමඟ අන්තර්ක්‍රියා කිරීම සඳහා ද්විමය ප්‍රොටෝකෝලය) භාවිතා කරන්න, එපමණයි. සමහර විට මෙය සංවර්ධකයින් අතර දැනුමක් නොමැතිකම විය හැකිය, නමුත් මෙම දෘෂ්ටි කෝණයෙන් පද්ධතිය සංකීර්ණ වේ.

අපි හැම විටම අන්ධ ලෙස මෙම පිටපත අනුගමනය කරන්නේ නැහැ. අද අපට කළු සහ සුදු නැත: එක්කෝ සියල්ල ලුවා හි ඇත, නැතහොත් සියල්ල ගෝ හි ඇත. පසුව සංක්‍රමණ ගැටළු ඇති නොවන පරිදි ඒවා ඒකාබද්ධ කරන්නේ කෙසේදැයි අපි දැනටමත් තේරුම් ගනිමු.

දැන් ටැරන්ටූල් කොහෙද?
"ප්‍රවර්ධකයා" ලෙසද හැඳින්වෙන වට්ටම් කූපන් පත් සැලකිල්ලට ගනිමින් භාණ්ඩවල අවසාන පිරිවැය ගණනය කිරීම සඳහා ටැරන්ටූල් සේවාවෙහි භාවිතා වේ. මා කලින් කී පරිදි, ඔහු දැන් විශ්‍රාම යයි: ඔහු වෙනුවට පෙර ගණනය කළ මිල ගණන් සහිත නව නාමාවලි සේවාවක් මඟින් ප්‍රතිස්ථාපනය වේ, නමුත් මාස හයකට පෙර සියලුම ගණනය කිරීම් ප්‍රවර්ධනකරු තුළ සිදු කරන ලදී. මීට පෙර, එහි තර්කයෙන් අඩක් ලුවා වලින් ලියා ඇත. මීට වසර දෙකකට පෙර, මෙම සේවාව ගබඩා පහසුකමක් බවට පත් කරන ලද අතර, Go හි තර්කනය නැවත ලිවීය, මන්ද වට්ටම් යාන්ත්‍ර විද්‍යාව ටිකක් වෙනස් වී ඇති අතර සේවාවේ කාර්ය සාධනය අඩු විය.

වඩාත්ම තීරණාත්මක සේවාවන්ගෙන් එකක් වන්නේ පරිශීලක පැතිකඩයි. එනම්, සියලුම Wildberries භාවිතා කරන්නන් Tarantool හි ගබඩා කර ඇති අතර, ඔවුන්ගෙන් මිලියන 50 ක් පමණ ඇත. පරිශීලක හැඳුනුම්පත මගින් බෙදා හරින ලද පද්ධතියක්, Go සේවාවන්ට සම්බන්ධ DC කිහිපයක් හරහා බෙදා හරිනු ලැබේ.
RPS ට අනුව, ප්‍රවර්ධකයා වරක් ප්‍රමුඛයා වූ අතර, ඉල්ලීම් 6 දහසකට ළඟා විය. එක අවස්ථාවක අපි ළඟ පිටපත් 50-60ක් තිබුණා. දැන් RPS හි ප්‍රමුඛයා වන්නේ පරිශීලක පැතිකඩයි, 12 දහසක් පමණ වේ. මෙම සේවාව පරිශීලක හැඳුනුම්පත් පරාසයන් අනුව බෙදනු ලබන අභිරුචි බෙදා හැරීම භාවිතා කරයි. සේවාව යන්ත්‍ර 20 කට වඩා සේවය කරයි, නමුත් මෙය බොහෝ ය; යන්ත්‍ර 4-5 ක ධාරිතාව ඒ සඳහා ප්‍රමාණවත් බැවින් වෙන් කර ඇති සම්පත් අඩු කිරීමට අපි සැලසුම් කරමු.

සැසි සේවාව vshard සහ Cartridge හි අපගේ පළමු සේවාවයි. vshard පිහිටුවීම සහ කාට්රිජ් යාවත්කාලීන කිරීම සඳහා අපෙන් යම් උත්සාහයක් අවශ්ය වූ නමුත් අවසානයේ සියල්ල සාර්ථක විය.

වෙබ් අඩවියේ සහ ජංගම යෙදුමේ විවිධ බැනර් ප්‍රදර්ශනය කිරීම සඳහා වූ සේවාව Tarantool හි සෘජුවම නිකුත් කළ පළමු එකකි. මෙම සේවාව අවුරුදු 6-7 ක් පැරණි, එය තවමත් ක්‍රියාත්මක වන අතර කිසි විටෙකත් නැවත පණ ගන්වා නොතිබීම කැපී පෙනේ. මාස්ටර්-මාස්ටර් අනුකරණය භාවිතා කරන ලදී. කිසිදාක කිසිවක් කැඩී නැත.

සමහර අවස්ථාවලදී තොරතුරු ඉක්මනින් දෙවරක් පරීක්ෂා කිරීම සඳහා ගබඩා පද්ධතියක ඉක්මන් විමර්ශන ක්‍රියාකාරිත්වය සඳහා Tarantool භාවිතා කිරීමේ උදාහරණයක් තිබේ. අපි මේ සඳහා Redis භාවිතා කිරීමට උත්සාහ කළ නමුත් මතකයේ ඇති දත්ත Tarantool වලට වඩා වැඩි ඉඩක් ලබා ගත්තේය.

පොරොත්තු ලේඛනයක සේවා, සේවාදායක දායකත්වයන්, දැනට විලාසිතාමය කථා සහ කල් දැමූ භාණ්ඩ ද Tarantool සමඟ ක්‍රියා කරයි. මතකයේ ඇති අවසාන සේවාව 120 GB පමණ වේ. ඉහත සඳහන් කළ සේවාවන් අතරින් වඩාත් පුළුල් සේවාව මෙයයි.

නිගමනය

ප්‍රධාන අගය සහ ගණුදෙණුව සමඟ ඒකාබද්ධ වූ ද්විතියික දර්ශකවලට ස්තූතිවන්ත වන අතර, Tarantool ක්ෂුද්‍ර සේවා මත පදනම් වූ ගෘහ නිර්මාණ ශිල්පය සඳහා හොඳින් ගැලපේ. කෙසේ වෙතත්, Lua හි බොහෝ තර්කයන් සහිත සේවාවන් සඳහා වෙනස්කම් සිදු කිරීමේදී අපට දුෂ්කරතා ඇති විය - සේවාවන් බොහෝ විට ක්‍රියා කිරීම නතර විය. අපට මෙය ජය ගැනීමට නොහැකි වූ අතර කාලයත් සමඟ අපි Lua සහ Go හි විවිධ සංයෝජන වෙත පැමිණියෙමු: එක් භාෂාවක් භාවිතා කළ යුත්තේ කොතැනද සහ වෙනත් භාෂාවක් භාවිතා කළ යුත්තේ කොතැනද යන්න අපි දනිමු.

මාතෘකාව පිළිබඳ තවත් කියවිය යුතු දේ

  • ටැරන්ටූල් භාවිතයෙන් මුල සිටම ඉහළ පැටවුම් යෙදුමක් නිර්මාණය කිරීම habr.com/ru/company/mailru/blog/510440
  • Tarantool Cartridge හි විශ්වාසදායී නායක තේරීම habr.com/ru/company/mailru/blog/513912
  • නිෂ්පාදනය පිළිබඳ ප්‍රවෘත්ති සහිත ටෙලිග්‍රාම් නාලිකාව Tarantool t.me/tarantool_news
  • ප්‍රජා කතාබස් තුළ Tarantool ගැන සාකච්ඡා කරන්න t.me/tarantoolru

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න