یکی از زیباترین جنبه های سیستم های توزیع شده fault tolerant شدنشونه از نظر بنده
پارت دوم: Distributed Systems دیگه چه غولی داره؟
در بخش قبل گفتم که چرا Distributed Systems اینقدر مهم شدن. اما یه سوال دیگه هم پیش میاد: پس چه فرقی با سیستمهای عادی دارن؟
تصور کنید و یک رستوران رو در نظر بگیرید:
- رستوران معمولی (غیرتوزیعشده): یک آشپز، یک پیشخدمت، یک صندوقدار. اگه آشپز مریض بشه، کل رستوران تعطیل میشه!
- رستوران توزیعشده: چندین آشپز، چندین پیشخدمت، چندین صندوق. اگر یک آشپز زمین بخوره، بقیه کار رو ادامه میدن.
پس تفاوت اصلی تو اینه که سیستمهای توزیعشده از چندین جزء مستقل تشکیل شدن که با همدیگه همکاری میکنن.
سه تا مفهوم کلیدی که باید از همین اول بدونید:
🔄 Communication:
نودها (همون کامپیوترها یا سرویسها) چطور با هم حرف میزنن؟ مثل آدمها که تلفن، ایمیل یا حضوری حرف میزنن، نودها هم پروتکلهای مختلفی دارن - از HTTP/REST گرفته تا gRPC و Message Queue ها.
🤝 Coordination:
چطور بین خودشون هماهنگ میشن؟ مثلاً چه کسی تصمیم میگیره که یک داده رو کدوم نود ذخیره کنه؟ یا چطور مطمئن میشن که دو تا کار با هم انجام ندن که منجر به conflict بشه؟ اینجا هست که چیزایی مثل Consensus Algorithms (مثلاً Raft) به کمکمون میآن.
🛡️ Fault Tolerance:
وقتی یک نود میمیره، سیستم چطور زنده میمونه؟ اینجاست که میفهمیم چرا Design for Failure اینقدر مهمه. باید طوری طراحی کنیم که شکست یه جز، به معنای شکست کل سیستم نباشه.
نکته طلایی: ساختن سیستم توزیعشده مثل این میمونه که یک تیم بسازید - مهم نیست که تکتک اعضا چقدر قوی هستند، مهم اینه که چطور با هم همکاری میکنن.
نکاتی از فصل اول کتاب Understanding Distributed Systems
با تشکر از جناب Roberto Vitillo برای این کتاب درجه یک!
#understanding_distributed_systems
#roberto_vitillo
کانال تلگرام
@gocasts
Post #745
5.38K
Go Casts 🚀 کتاب Understanding Distributed Systems نکاتی که هر developerی در مورد distributed applicationها باید بدونه چرا همه درباره Distributed Systems حرف میزنن؟ 🤔 وقتی اولین بار با سیستمهای توزیعشده آشنا شدم، فکر میکردم فقط برای شرکتهای بزرگ مثل Google و Amazon…
- ❤ 27
- 👍 2