دوستان پیشنهاد میکنم حتما بعد از خوندن پست های مربوط به الگوی Sharding این ویدیوی کوتاه در مورد Consistent Hashing رو ببینید
تو دنیای مدرن امروز عملا همه چیز حاضر و آماده شده، و برای استفاده از این الگوها، فقط کافیه که نحوه استفاده و محل استفاده رو بلد باشید...
منظورم از این حرف اینه که اگه الگویی کمی پیچیده میشه اصلا ازش نترسید، یا دور نشید ازش، بلکه با کمی آشنایی با کلیات اون الگو میتونید خیلی راحت به کمک ابزارهای موجود توی طراحی سیستمتون استفاده کنید ازش
این الگوی replicated و shardedی که من بحث کردم عملا تو خیلی از load balancer های معروف وجود داره و با چند خط کانفیگ میتونید به راحتی ازش استفاده کنید، مثلا در nginx به این شکله
upstream backend {
hash $request_uri consistent
server web-shard-1.web;
server web-shard-2.web;
server web-shard-3.web;
}
قطعا استفاده از این الگوهای ملاحظات دیگه ای هم داره که باید خودتون با توجه به بیزینستون بهش فکر کنید، اما وقتی قسمت سخت تر قضیه اینقدر راحت توسط ابزارهای موجود مدیریت میشه، مدیریت قسمت های ساده ترش توسط خود شما اصلا کار ترسناکی نخواهد بود
#designing_distributed_systems_brendan_burns
@gocasts
Post #61
694
Go Casts | Systems & Agents 🚀 Consisten Hashing تصور کنید که شما تصمیم میگیرید که تعداد node های shard رو تغییر بدید، سوال بزرگ اینه که چه بلایی بر سر hash key ها میاد؟ چون با کم و زیاد شدن node ها عملا خروجی تابع hash برای درخواست ها تغییر میکنه و درخواست ها به node درستی داده نمیشن.…