Distributed Lock سازوکاری برای هماهنگی دسترسی به منبع مشترک میان چند فرایند یا سرور مستقل است.
برای جلوگیری از اجرای همزمان Job تسویه در دو سرور میتوان از قفل توزیعشده استفاده کرد.
محدودیتها و جزئیات
انقضای Lock، توقف موقت Worker و Fencing Token اهمیت دارند. قفل ساده Redis بهتنهایی همه تضمینهای اجماع را فراهم نمیکند.
نمونه قفل توزیعشده ردیس
SET job:42 locked NX PX 30000
# release only if lock token still matches
باید هنگام آزاد کردن قفل مالک آن را بررسی کرد. حذف کورکورانه کلید ممکن است قفل Worker دیگری را پاک کند. TTL و Fencing Token در سناریوهای حساس مهماند.