د توزیع شوي غوښتنلیکونو د جوړولو بلاکونه. صفر نږدې

د توزیع شوي غوښتنلیکونو د جوړولو بلاکونه. صفر نږدې

نړۍ هم نه ده ولاړه. پرمختګ نوې ټیکنالوژیکي ننګونې رامینځته کوي. د بدلون اړتیاو سره سم، د معلوماتو سیسټمونو جوړښت باید وده ومومي. نن ورځ موږ به د پیښې لخوا پرمخ وړل شوي جوړښت ، همغږي ، همغږي ، اسینچروني په اړه وغږیږو ، او تاسو څنګه کولی شئ په ایرلنګ کې د دې ټولو سره په سوله ایز ډول ژوند وکړئ.

پېژندنه

د ډیزاین شوي سیسټم اندازې او د هغې لپاره اړتیاو پورې اړه لري، موږ، پراختیا کونکي، په سیسټم کې د معلوماتو تبادلې طریقه غوره کوو. په ډیری قضیو کې، د خدماتو تعامل تنظیم کولو لپاره، کاري اختیار ممکن د بروکر سره سکیم وي، د بیلګې په توګه، د RabbitMQ یا کافکا پر بنسټ. مګر ځینې وختونه د پیښو جریان ، SLA او په سیسټم کې د کنټرول کچه داسې وي چې چمتو شوي پیغامونه زموږ لپاره مناسب ندي. البته، تاسو کولی شئ د ټرانسپورټ پرت او د کلستر جوړونې مسؤلیت په غاړه اخیستو سره سیسټم یو څه پیچلی کړئ، د بیلګې په توګه د ZeroMQ یا nanomsg کارول. مګر که سیسټم کافي بینډ ویت او د معیاري ایرلانګ کلستر ظرفیت ولري ، نو د اضافي ادارې معرفي کولو مسله مفصلې مطالعې او اقتصادي توجیه ته اړتیا لري.

د عکس العمل توزیع شوي غوښتنلیکونو موضوع خورا پراخه ده. د مقالې په بڼه کې د ساتلو لپاره، د نن ورځې بحث موضوع به یوازې په ایرلنګ / ایلیکسیر کې جوړ شوي همغږي چاپیریال وي. د ایرلانګ/OTP ایکوسیستم تاسو ته اجازه درکوي چې د لږې هڅې سره یو عکس العمل جوړښت پلي کړئ. مګر په هر حالت کې، موږ به د پیغام رسولو پرت ته اړتیا ولرو.

نظري اساس

ډیزاین د اهدافو او محدودیتونو په ټاکلو سره پیل کیږي. اصلي هدف په سیمه کې د پرمختګ لپاره نه دی. موږ اړتیا لرو چې یو خوندي او د توزیع وړ وسیلې ترلاسه کړو چې په اساس یې موږ کولی شو رامینځته کړو او خورا مهم ، د مختلف کچو عصري غوښتنلیکونه رامینځته کړو: د یو واحد سرور غوښتنلیکونو څخه پیل چې کوچني لیدونکو ته خدمت کوي ، کوم چې وروسته تر 50 پورې کلسترونو ته وده ورکولی شي. -60 نوډونه، د کلستر فدراسیون سره پای ته رسیږي. په دې توګه، اصلي هدف د وروستي سیسټم د پراختیا او مالکیت لګښت کمولو له لارې د ګټې اعظمي کول دي.

راځئ چې د وروستي سیسټم لپاره 4 اصلي اړتیاوې روښانه کړو:

  • Сد پیښو پر بنسټ.
    سیسټم تل چمتو دی چې د پیښو له جریان څخه تیر شي او اړین عملونه ترسره کړي؛
  • Мتوزیع وړتیا
    انفرادي بلاکونه په عمودي او افقي ډول اندازه کیدی شي. ټول سیسټم باید د لامحدود افقی ودې وړتیا ولري؛
  • Оد خطا زغم.
    ټولې کچې او ټول خدمات باید د دې وړتیا ولري چې په اتوماتيک ډول د ناکامیو څخه بیرته راستانه شي؛
  • Гد ځواب وخت تضمین شوی.
    وخت ارزښتناک دی او کاروونکي باید ډیر انتظار ونه کړي.

د "کوچني انجن چې کولی شي" په اړه پخوانۍ افسانه په یاد ولرئ؟ د دې لپاره چې ډیزاین شوي سیسټم په بریالیتوب سره د پروټوټایپ مرحلې څخه وځي او پرمختللی وي، د دې بنسټ باید لږترلږه اړتیاوې پوره کړي SMOG.

یو بل ټکی د زیربنا وسیلې په توګه پیغام رسولو ته اضافه شوی او د ټولو خدماتو اساس دی: د پروګرام کونکو لپاره د کارولو اسانتیا.

د پیښو پر بنسټ

د دې لپاره چې یو غوښتنلیک له یو واحد سرور څخه کلستر ته وده وکړي، د دې جوړښت باید د نرم جوړه کولو ملاتړ وکړي. غیر متناسب ماډل دا اړتیا پوره کوي. پدې کې ، لیږونکی او ترلاسه کونکی د پیغام معلوماتو بار په اړه پاملرنه کوي او په سیسټم کې د لیږد او روټینګ په اړه اندیښنه مه کوئ.

د توزیع وړتیا

د اندازه کولو وړتیا او د سیسټم موثریت یو له بل سره نږدې دي. د غوښتنلیک برخې باید وړتیا ولري چې ټولې موجودې سرچینې وکاروي. هرڅومره چې موږ کولی شو ظرفیت وکاروو او زموږ د پروسس کولو میتودونه خورا غوره وي ، هغومره لږ پیسې چې موږ په تجهیزاتو مصرف کوو.

د یو واحد ماشین دننه، ایرلانګ خورا رقابتي چاپیریال رامینځته کوي. د موافقت او موازي تر مینځ توازن د ایرلانګ VM لپاره موجود عملیاتي سیسټم تارونو شمیر او د مهالویش شمیره غوره کولو سره تنظیم کیدی شي چې دا تارونه کاروي.
د ایرلانګ پروسې دولت نه شریکوي او په غیر بلاک کولو حالت کې کار کوي. دا د دودیز بلاک کولو پراساس غوښتنلیکونو په پرتله نسبتا ټیټ ځنډ او لوړ تولید چمتو کوي. د ایرلانګ مهالویش کوونکی د CPU او IO عادلانه تخصیص تضمینوي، او د بلاک کولو نشتوالی غوښتنلیک ته اجازه ورکوي حتی د لوړ بار یا ناکامۍ پرمهال ځواب ووایی.

د کلستر په کچه، د ضایع کولو ستونزه هم شتون لري. دا مهمه ده چې په کلستر کې ټول ماشینونه په مساوي ډول بار شوي وي او دا چې شبکه ډیر نه وي. راځئ چې یو حالت تصور کړو: د کارونکي ترافیک په راتلونکو بیلانسونو (هاپروکسي، نګینکس، او نور) کې راځي، دوی د پروسس غوښتنې په مساوي توګه د شته بیک انډونو سیټ ترمنځ ویشي. د غوښتنلیک زیربنا کې ، د اړتیا وړ انٹرفیس پلي کولو خدمت یوازې وروستی مایل دی او اړتیا لري د یو شمیر نورو خدماتو غوښتنه وکړي ترڅو لومړنۍ غوښتنې ته ځواب ووایی. داخلي غوښتنې هم روټینګ او توازن ته اړتیا لري.
د ډیټا جریان په مؤثره توګه اداره کولو لپاره ، پیغام رسول باید پراختیا کونکو ته د روټینګ او بار توازن اداره کولو لپاره انٹرفیس چمتو کړي. د دې څخه مننه ، پراختیا کونکي به وکولی شي د مایکرو سرویس نمونې (مجموعه کونکي ، پراکسي ، زنځیر ، څانګه او نور) په کارولو سره دواړه معیاري دندې حل کړي او هغه چې په ندرت سره راپورته کیږي.

د سوداګرۍ له نظره، توزیع کول د خطر مدیریت یو له وسیلو څخه دی. اصلي شی د تجهیزاتو په کارولو سره د پیرودونکو غوښتنې پوره کول دي:

  • کله چې د تجهیزاتو ځواک د پرمختګ په پایله کې لوړیږي. دا به د نامناسب سافټویر له امله بې کاره نه وي. ایرلانګ په عمودی توګه ښه اندازه کوي او تل به د دې وړتیا ولري چې د CPU ټول کورونه او موجود حافظې وکاروي؛
  • په بادل چاپیریال کې، موږ کولی شو د اوسني یا اټکل شوي بار پورې اړوند د تجهیزاتو اندازه اداره کړو او SLA تضمین کړو.

د خطا زغم

راځئ چې دوه محورونه په پام کې ونیسو: "ناکامي د منلو وړ نه دي" او "تل به ناکامي وي." د سوداګرۍ لپاره، د سافټویر ناکامي د پیسو له لاسه ورکولو معنی لري، او څه بد دي، د شهرت ضایع کول. د احتمالي زیانونو او د غلطۍ زغمونکي سافټویر رامینځته کولو لګښت ترمینځ توازن ، یو جوړجاړی اکثرا موندل کیدی شي.

په لنډه موده کې، یو جوړښت چې د غلطۍ زغم پکې شامل وي د شیلف څخه د کلستر کولو حلونو پیرودلو باندې پیسې خوندي کوي. دوی ګران دي او دوی کیګونه هم لري.
په اوږد مهال کې، د غلطۍ زغم لرونکی جوړښت د پراختیا په ټولو مرحلو کې څو ځله د ځان لپاره پیسې ورکوي.
د کوډ بیس دننه پیغام رسول تاسو ته اجازه درکوي د پراختیا په مرحله کې په سیسټم کې د اجزاو تعامل په تفصیل سره کار وکړئ. دا د ناکامیو د ځواب ویلو او اداره کولو دنده ساده کوي، ځکه چې ټولې مهمې برخې ناکامۍ اداره کوي، او پایله لرونکی سیسټم پوهیږي چې څنګه د ډیزاین لخوا د ناکامۍ وروسته په اتوماتيک ډول عادي حالت ته راستون شي.

غبرګون

د ناکامۍ په پام کې نیولو پرته، غوښتنلیک باید غوښتنو ته ځواب ووایي او د SLA سره مل وي. حقیقت دا دی چې خلک نه غواړي انتظار وکړي، نو سوداګرۍ باید د هغې مطابق تطبیق کړي. ډیر او ډیر غوښتنلیکونه تمه کیږي چې خورا ځواب ویونکي وي.
ځواب ورکوونکي غوښتنلیکونه په نږدې ریښتیني وخت کې کار کوي. Erlang VM په نرم ریښتیني وخت حالت کې کار کوي. د ځینو برخو لپاره، لکه د سټاک سوداګرۍ، درمل، او د صنعتي تجهیزاتو کنټرول، د ریښتیني وخت سخت حالت مهم دی.
ځواب ورکوونکي سیسټمونه UX ته وده ورکوي او سوداګرۍ ته ګټه رسوي.

لومړنی لنډیز

کله چې د دې مقالې پلان کول ، ما غوښتل د پیغام رسولو بروکر رامینځته کولو او د هغې پراساس پیچلي سیسټمونو رامینځته کولو تجربه شریک کړم. مګر نظري او هڅونکي برخه خورا پراخه شوه.
د مقالې په دویمه برخه کې، زه به د تبادلې نقطو، د پیغام رسولو نمونو او د دوی غوښتنلیک پلي کولو په اړه خبرې وکړم.
په دریمه برخه کې به موږ د خدماتو تنظیم کولو، روټینګ او انډول کولو عمومي مسلو ته پام وکړو. راځئ چې د سیسټمونو د اندازې وړتیا او د غلطۍ زغم عملي اړخ په اړه وغږیږو.

د لومړۍ برخې پای.

انځور @lucabravo.

سرچینه: www.habr.com

Add a comment