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

پروژه sofa-jraft

sofastack/sofa-jraft

چه کاربردی داره؟

این یک پیاده‌سازی حرفه‌ای و آماده‌ی تولید از الگوریتم RAFT به زبان جاواست که برای دستیابی به اتمیت و تکرارپذیری در سیستم‌های توزیع‌شده استفاده می‌شه.

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

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

وقتی نیاز داری یک سیستم تکرارشونده و عیب‌پذیر (fault-tolerant) بسازی، مثل زمانی که می‌خوای یک پایگاه داده توزیع‌شده، سرویس کنترل کننده خوشه یا سیستم صف‌های پیام‌رسانی پایدار داشته باشی.

همچنین وقتی می‌خوای بدون استفاده از Paxos و با یک الگوریتم ساده‌تر و قابل فهم‌تر مثل RAFT، توافق توزیع‌شده رو پیاده‌سازی کنی، این ابزار گزینه‌ی عالی‌ایه.

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

- ساخت یک key-value store توزیع‌شده با قابلیت بازیابی از خرابی

- مدیریت وضعیت در یک سیستم microservices با قواعد انتخاب لیدر (leader election)

- پیاده‌سازی لاگ توزیع‌شده برای سیستم‌های replicated log

- استفاده در پلتفرم‌های ابری مثل Ant Financial برای تضمین سازگاری داده‌ها ️

  • ##distributed
  • ##raft
  • ##java
  • ##fault
  • ##sofa
  • ##leader
  • ##replicated
  • ##cloud
  • ##high
  • ##microservices