اینم یه تجربه پراکنده!
این پست میخواست یه پست به نسبت بلند باشه. اما هرچی با خودم بالا و پایینش کردم دیدم خوب نیست که توی یک پست جمعش کنم. پس اول یه پست کوتاه مینویسم که اصل ماجرا از چه قراره و بعدش ایشالا اگه عمری بود جزئیات و کاربردها و این چیزا رو میگم!
کل این متن از این سایت ایده گرفته شده و میخواد بخش از حرفهایی که اونجا زده شده رو بگه. reactive در معنی لغتی به معنی واکنشدار و واکنشی هست و به سیستمی اطلاق میشه که واکنش قابل قبولی در زمان قابل قبول نسبت به درخواستهایی که بهش داده میشه، انجام میده. این سیستمهای این ویژگیها رو دارن:
- پاسخگو هستند: یعنی در صورت امکان در زمان قابل قبول نتیجه اطلاع میدن. پاسخگو بودن اصلی ترین ویژگی در قابلیت استفاده نرمافزاره اما این مفهوم فراتر از اون میره و به تشخیص و رفع مشکلات سیستم هم فکر میکنه. هدف کلی سیستمهای پاسخگو این هست که زمان پاسخ یکنواخت نسبت به همه درخواستها داره که باعث سادگی، جلب اعتماد کاربر میشه
- مقاومت: این سیستمها قابل پاسخگویی خود را در مقابل خطاها از دست نمیدهند. این ویزگی نه تنها برای بخشهای حیاتی سیستم بلکه برای تمام بخشهای سیستم وجود داره. این ویژگی با استفاده از افزونگی(داشتن چند کپی یکسان)، مهار کردن(خطای یک بخش فقط در آن بخش میماند)، جدا سازی(بخشهای مختلف سیستم از هم مجزا بوده و بدون نیاز به یکدیگر قابل جایگزینی هستند) و واگذاری وظیفه(وظیفه رفع خطا به بخش دیگری از سیستم واگذار شده است) بوجود میاد.
- با قابلیت ارتجاع: سیستم در تقابل با حجم کارهای متفاوت پاسخگویی خود را حفظ میکند. یعین بر اساس میزان کار بصورت پویا منابع را تخصیص داده یا حذف میکند. این نرمافزارها با تخمین بار و با استفاده از الگوریتمهایی کارایی خود را بالا میبرند.
- مبتنی بر پیغام: این سیستمها براساس انتقال پیغام بصورت غیر همگام عمل کرده و ارتباط بین بخشهای مختلف سیستم را فراهم میکنند. استفاده از این مکانیزم باعث کاهش ارتباط میان اجزای سیستم، جداسازی و بررسی خطا را میدهد. استفاده از پیغام همچنین این امکان را برای ما فراهم آورده که قابلیت ارتجاع را پیاده سازی کنیم. بدین صورت که با بررسی حجم پیغامها میتوان بار سیستم و میزان نیاز به افزایش منابع را تشخیص داد. همچنین ذات نا همگام سیستم میتواند باعث شود که سیستم به کارهای دیگر رسیدگی کرده و سربار سیستم کاهش یابد.
فعلا همین!