Skip to content

Latest commit

 

History

History
74 lines (40 loc) · 8.69 KB

README.fa.md

File metadata and controls

74 lines (40 loc) · 8.69 KB

بیانیه واكنشگر

----------------------------------

شرکت های فعال درحوزه های مختلف به طور مستقل الگوهایی برای ساختن نرم افزار کشف می کنند که به هم شبیه هستند. این نرم افزارها دارای بنیادی قویتر، ترمیم پذیرتر و با قابلیت انعطاف بیشتر هستند و درموقعیت بهتری برای پاسخگویی به نیازهای امروزی قرار دارند.

نیازهای برنامه‌های كاربردی در سال‌های اخیر به طور چشمگیری تغییر كرده‌اند. تنها چند سال قبل یك برنامه كاربردی بزرگ دارای ده‌ها سرور، زمان پاسخگویی در حد چند ثانیه، و زمان نگهداری آفلاین در حد ساعت، و داده‌هایی در حد چند گیگابایت بود. امروزه برنامه‌های كاربردی بر روی همه چیز از وسیله‌های همراه گرفته تا خوشه های مبتنی بر كلاود مستقر هستند كه هزاران پردازنده چند هسته‌ای را به كار می‌گیرند. كاربران خواستار زمان پاسخگویی در حد هزارم ثانیه و زمان دسترسی ۱۰۰ درصد هستند. داده‌ها در مقیاس پتابایت اندازه گیری می شوند. معماری نرم افزار های دیروز، دیگر پاسخگوی نیازهای امروز نیستند.

ما بر این باوریم که در معماری سیستم به یک رویکرد منسجم احتیاج است و تمامی اجزای تشکیل دهنده‌ی این رویکرد به طور مجزا و جداگانه شناخته شده اند: ما سیستم هایی می خواهیم که پاسخگو ، ترمیم‌ پذیر، منعطف و پیام-گرا باشند. ما چنین سیستمی را را واکنشگر می نامیم.

سیستم هایی که به عنوان سیستم های واکنشگرساخته شده اند قابل انعطاف تر، با همراهی آزاد‌انه و میزان پذیر هستند. این امر ساختن آنها را آسان تر و آنها را مستعد تغییر می کند. آنها به طور قابل توجهی بیشتر تحمل خرابی را دارند و زمانی که خرابی رخ می دهد، با آنها با ظرافت و نه مانند فاجعه برخورد میکنند. سیستم های واکنشگر بسیار پاسخگو هستند و برای کاربران بازخورد تعاملی موثری فراهم می کنند.

سیستم های واکنشگر آنهایی هستند که:

پاسخگو: سیستم در صورت امکان به موقع پاسخ می دهد. پاسخگو بودن بنیاد قابل استفاده بودن و سودمند بودن است. اما بیشتر از آن، پاسخگو بودن بدان معنی است که مشکلات می توانند به سرعت تشخیص داده شده و بطور موثر با آنها مقابله شود. سیستم های پاسخگو با ارائه سریع و نامتناقض پاسخ ، محدوده بالای قابل اطمینانی را برپا می کنند تا کیفیت بالایی از سرویس را ارائه کنند. رفتار نامتناقض به نوبه خود رفع خطا را آسان می کند، در کاربر اطمینان ایجاد کرده و او را به کنش و واکنش بیشتر ترغیب می کند.

ترمیم پذیر: سیستم در هنگام خرابی پاسخگو می ماند. این امر تنها به سیستم های با دسترسی زیاد و با ماموریت حیاتی محدود نمی شود -- هر سیستم که ترمیم پذیر نباشد در هنگام مواجه با خرابی از پاسخگویی باز می ماند. ترمیم پذیری با تکرار ، مهار، انزوا و محول کردن (delegation) به دست می آید. خرابی هر کدام از اجزاء به خود آن محدود می ماند.و اجزا را از همدیگر منزوی کرده و تضمین می کند که قسمت هایی از سیستم می توانند خراب و ترمیم شوند بدون اینکه کل سیستم را در مخاطره قرار دهند. بازیابی هر جزء به یک جزء خارجی محول می شود و در دسترس بودن بالا در هنگام نیاز با تکثیر فراهم می شود. رسیدگی به خرابی ها به استفاده کننده از یک جزء تحمیل نمی شود.

منعطف: سیستم زیر حجم کار مختلف پاسخگو باقی می ماند. سیستم های واکنشگر می تواند به تغییرات در نرخ rate ورودی با افزایش یا کاهش منابع اختصاص داده شده به خدمات این ورودی واکنش نشان دهند. این به معنی طرح هایی است که هیچ نقطه مشاجره یا تنگناهای مرکزی ندارند و به توانایی چند پاره شدن و تکرار اجزا و پخش کردن ورودی میان آنها منجر می شوند. سیستم های واکنشگر الگوریتم های مقیاس گذاری scaling algorithms پیش بینی کننده و واکنشگر را با فراهم کردن زنده میزان عملکرد پشتیبانی می کنند. آن ها قابلیت انعطاف پذیری مقرون به صرفه ای را در پلتفورم کالای نرم افزاری و سخت افزاری بدست می آورند.

پیام گرا: سیستم های واکنشگر به انتقال پیام با ارتباط ناهمزمان انتقال پیام تکیه می کنند تا بین اجزا مرز بندی کنند. این مرز همچنین خرابی ها را به شکل پیام منتقل می کند. استفاده از پیام رسانی صریح از طریق شکل دهی و نظارت بر صف پیام در سیستم و استفاده از فشار به سمت عقب در صورت لزوم مدیریت بار، انعطاف پذیری و کنترل جریان را قادر می سازد. پیغام رسانی بی اطلاع از مکان پیغام رسانی بی اطلاع از مکان به عنوان وسیله تماس این امکان را ایجاد می کند که مدیریت خرابی با همان سازه ها و معانی در کلاستر کار کنند که در یک میزبان استفاده می کنند. ارتباطات غیر مسدود کننده به گیرندگان این امکان را میدهد که تنها وقتی که فعال هستند از منابع استفاده کنند که منجر به سربار کمتر بر سیستم باشند.

سیستم های بزرگ از سیستم های کوچکتر تشکیل شده اند و به همین دلیل به خواص واکنشی اجزاء اصلی آنها بستگی دارند. این به این معنی است که سیستم های واکنشگر اصول طراحی را به نحوی اعمال می کنند که این خواص در تمام سطوح مقیاس scale اعمال می شوند که آنها را قابل ترکیب composable می کند. بزرگترین سیستم ها در جهان بر معماری مبتنی بر این خواص تکیه می کنند و به نیازهای میلیاردها نفر از مردم هر روزه خدمت می کنند. اکنون زمان به کاربردن آگاهانه این اصول طراحی از همان ابتدای کار به جای کشف مجدد هر باره آنها است.

بیانیه را امضا کنید