با شمارهٔ موبایل وارد شوید تا بتوانید اشتراک بخرید و در گفتگو شرکت کنید.

کتاب‌های نویسنده: اونمش جوشی · همهٔ کتاب‌ها

کتابخانهٔ شنیدنی شب‌گفتار

کتاب‌های اونمش جوشی

خلاصه‌های صوتی فارسی کتاب‌های مرتبط با اونمش جوشی؛ کتاب و فصل دلخواهتان را برای شنیدن انتخاب کنید.

این مجموعه خلاصهٔ کتاب‌هاست؛ نسخهٔ کامل کتاب اصلی نیست.

1 عنوان · 7 قسمت منتشرشده

قفسهٔ کتاب‌ها

از این کتاب‌ها شروع کنید

تازه‌ترین قسمت‌های منتشرشده

برای ترتیب درست فصل‌ها، وارد صفحهٔ هر کتاب شوید.

۱۴۰۵/۰۸/۰۴زمان شنیدن ۴:۵۱
الگوهای سیستم‌های توزیع‌شده

بخش اول: الگوهای معماری در سیستم‌های توزیع‌شده

نمونهٔ رایگان
توضیح و منابع این قسمت

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

این موضوع در فصل‌های ابتدایی کتاب «الگوهای سیستم‌های توزیع‌شده» نوشتهٔ اونمش جوشی بررسی می‌شود که به ما نشان می‌دهد چطور می‌توان چالش‌های مقیاس‌پذیری و پایداری را با استفاده از الگوهای معماری مدیریت کرد.

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

برای حفظ ثبات و پایداری داده‌ها روی یک گره، استفاده از Write-Ahead Log (لاگ نوشتن پیشرو) به کار گرفته می‌شود. مشکل اینجاست که اگر سرور هنگام به‌روزرسانی فایل‌های متعدد دچار نقص شود، داده‌ها ناسازگار می‌شوند. راه‌حل این است که سیستم پیش از اعمال تغییرات، جزئیات را در یک فایل ترتیبی ثبت کند تا در صورت راه‌اندازی مجدد، وضعیت قبلی قابل بازیابی باشد. پایگاه‌های داده از این الگو برای ثبت و مدیریت تراکنش‌ها استفاده می‌کنند.

مشکل بعدی به‌روزرسانی‌های رقابتی است؛ وقتی دو کاربر هم‌زمان درخواست‌های متفاوتی می‌فرستند، سیستم به مدیریت هماهنگ نیاز دارد. الگوی Leader and Followers (رهبر و پیروان) این مسئله را حل می‌کند به این شکل که یک گره به عنوان رهبر تمام تغییرات را می‌پذیرد و به بقیه منتقل می‌کند. تریدآف آن تمرکز بار روی یک گره است و برای حل خطاهای ناشی از قطع ارتباط آن، Quorum (حد نصاب) به کار می‌رود که یعنی یک تصمیم تنها زمانی معتبر است که اکثریت گره‌ها آن را تأیید کرده باشند.

گاهی رهبر از کار می‌افتد و گره‌های دیگر باید رهبر جدیدی انتخاب کنند که این امر با خطراتی در ناسازگاری لاگ‌ها همراه است. علامت سطح بالا یا High-Water Mark روشی است که نشان می‌دهد آخرین به‌روزرسانی تا کدام نقطه توسط اکثریت گره‌ها تأیید شده است. همچنین برای اینکه ارسال دوبارهٔ درخواست توسط مشتریان باعث اجرای تکراری عملیات نشود، سامانه از Idempotent Receiver (گیرندهٔ خودتوان) استفاده می‌کند تا با بررسی شناسهٔ یکتای درخواست، پاسخ‌های قبلی را بدون اجرای مجدد برگرداند.

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

امیدوارم این بررسی کوتاه از الگوهای سیستم‌های توزیع‌شده برایتان مفید بوده باشد و در قسمت‌های بعدی همراه ما بمانید.

شنیدن قسمت