خدمة قفل موزّعة خفيفة وسريعة ومفتوحة المصدر، ترتّب تسلسل عدة خوادم وعمليات بمفتاح واحد
Ticketing هو خادم أقفال موزّعة صُمم لمعالجة أكثر لحظات الحركة ازدحامًا بأسرع ما يمكن. وُجد لمنع الحوادث التي تقع عندما تُباع كمية محدودة أكثر من المتاح، أو يُخصَّص نفس المقعد لشخصين، أو يُستخدم كوبون واحد مرتين في آن واحد.
خلافًا لمعظم الأقفال الموزّعة التي تُنفَّذ كسكربتات، كُتب Ticketing بلغة Rust للجمع بين كفاءة الذاكرة والسرعة. يقرأ البروتوكول الثنائي ثابت العرض عبر الإزاحة دون أي تحليل، ولا يخصّص ذاكرة على الكومة حتى أثناء معالجة طلب. في اختبارات الأداء على عقدة واحدة يعالج أكثر من مليون عملية في الثانية باستخدام أقل من 10 ميغابايت من الذاكرة. يضمن طابوره الترتيب، ومع تفعيل عنقود Raft تستمر الخدمة بلا انقطاع حتى عند سقوط العُقد واحدة تلو الأخرى — كما يحدث أثناء إعادة تشغيل مثيلات السحابة أو الصيانة المتسلسلة.
بروتوكول إطارات ثنائي
مصمم من الأساس بحقول ثنائية بعرض ثابت، تُقرأ مباشرة عبر إزاحات البايت دون أي مرحلة تحليل وبأقل قدر من النفقات العامة.
رموز Fencing
كل عملية حصول تُصدر رمزًا متزايدًا دائمًا، ما يحميك حتى في اللحظات التي لا يكون فيها خادم القفل متسقًا تمامًا.
عنقود بلا توقف
عنقود قائم على إجماع Raft. مع 3 عُقد، تستمر الخدمة رغم أعطال العُقد وإعادة التشغيل، ولا ينهار الاستبعاد المتبادل حتى أثناء الانقسام.
عملاء أصليون للغات الرئيسية
عملاء رسميون لـ Java/Kotlin وJavaScript/TypeScript وPython وGo وRust وغيرها — لكل منها واجهة برمجة طبيعية (غير متزامنة أو حاجبة) تشعرك وكأنها من صميم اللغة.
دليل نشر الخادم
Docker · Podman · Kubernetes · ثنائي — أنشئ أوامر تشغيل مفرد/عنقود الآن
→
الأداء
مقارنة سرعة مع Redisson (Redis)، أكثر أنظمة الأقفال الموزّعة استخدامًا.
عملاء TicketingRedis (Redisson RLock)
Redisخط الأساس
4,909.1 ms · 8,148 ops/s
4,909.1 ms
يمثّل طول الشريط الزمن الكلي (ms) للتشغيل بأكمله — كلما كان أقصر كان أسرع.
32 contended keys × 1,250 ops · concurrency 64 · mac mini m4 2024 basic (10 core), single local server, acknowledged release, 1s min-work budget
دعم المنصات