rabbitmq/ra
این یک پیادهسازی چندگانه از الگوریتم Raft در Erlang و Elixir است که هدفش کارآمد بودن و تسهیل استفاده از چندین خوشه Raft در یک سیستم واحد است.
کاربرد:
این کتابخانه برای سیستمهای توزیعشدهای طراحی شده که نیاز به توافق توزیعشده (distributed consensus) دارند، مثل پایگاههای داده توزیعشده، صفهای پیامرسانی (مثل RabbitMQ)، و سرویسهای قابل اعتماد در محیطهای بدون اعتماد کامل.
در چه شرایطی بهتره استفاده شود؟
وقتی نیاز دارید چندین خوشه Raft را در کنار هم مدیریت کنید بدون اینکه عملکرد سیستم کند شود. همچنین وقتی با زبانهای Erlang یا Elixir کار میکنید و به دنبال راهحلی کارآمد و قابل اعتماد برای توافق توزیعشده هستید.
چند مثال از موارد استفاده:
مدیریت وضعیت مشترک در یک سیستم صفدهی پیشرفته مثل RabbitMQ
پیادهسازی یک سرویس ثبتنام (registry) توزیعشده برای سرویسهای میکروسرویسی
ایجاد یک ذخیره کلید-مقدار (key-value store) با تضمین اتساق قوی (strong consistency)
مدیریت قراردادهای توزیعشده در سیستمهای اتوماسیون شبکه
- ##distributed
- ##consensus
- ##raft
- ##erlang
- ##elixir
- ##rabbitmq
- ##high
- ##fault
- ##microservices
- ##distributed
