وب‌سرویس مجید

پروژه raft

etcd-io/raft

این کتابخانه یک پیاده‌سازی قابل اعتماد و کارآمد از الگوریتم Raft برای حفظ یک ماشین وضعیت تکرارشده (replicated state machine) در سیستم‌های توزیع‌شده است.

این ابزار به توسعه‌دهندگان کمک می‌کند تا سیستم‌های مقاوم در برابر خرابی و سازگار از نظر داده پیاده‌سازی کنند.

کاربرد:

این کتابخانه برای ساخت سیستم‌های توزیع‌شده‌ای که نیاز به توافق (consensus) بین چندین نود دارند، مناسب است.

مثل پایگاه‌های داده توزیع‌شده، سیستم‌های ذخیره‌سازی کلید-مقدار، و سرویس‌های مدیریت کلاستر.

در چه شرایطی بهتره استفاده شود؟

وقتی که نیاز به یک سیستم قابل اعتماد برای مدیریت وضعیت مشترک بین چندین سرور دارید و می‌خواهید از دسترسی بالا و تحمل خطا اطمینان حاصل کنید.

همچنین زمانی که می‌خواهید از یک الگوریتم شناخته‌شده و تست‌شده مثل Raft استفاده کنید، نه یک راه‌حل سفارشی.

چند مثال از موارد استفاده:

سیستم‌های ذخیره‌سازی توزیع‌شده مثل etcd و Consul از این کتابخانه استفاده می‌کنند.

مدیریت وضعیت کلاستر در اورکستراسیون‌های مانند Kubernetes.

پیاده‌سازی لج ریپلیکیشن (log replication) در پایگاه‌های داده توزیع‌شده.

سیستم‌هایی که نیاز به انتخاب لیدر (leader election) قابل اعتماد دارند.

  • ##distributed
  • ##consensus
  • ##raft
  • ##etcd
  • ##kubernetes
  • ##replicated
  • ##high
  • ##fault
  • ##log
  • ##leader