Un service de verrouillage distribué léger, rapide et open source, qui ordonne plusieurs serveurs et processus avec une seule clé
Ticketing est un serveur de verrous distribués conçu pour traiter vos moments de trafic les plus intenses le plus rapidement possible. Il existe pour empêcher les incidents qui surviennent quand une quantité limitée est survendue, qu'un même siège est attribué à deux personnes, ou qu'un coupon unique est utilisé deux fois à la fois.
Contrairement à la plupart des verrous distribués, généralement implémentés sous forme de scripts, Ticketing est écrit en Rust pour allier efficacité mémoire et rapidité. Il lit le protocole binaire à largeur fixe par décalage d'octets sans analyse syntaxique, et n'alloue rien sur le tas même pendant le traitement d'une requête. Sur des bancs d'essai à nœud unique, il traite plus d'un million d'opérations par seconde en utilisant moins de 10 Mo de mémoire. Sa file d'attente garantit l'ordre, et avec le cluster Raft activé, le service continue de fonctionner sans aucune interruption même quand les nœuds tombent un par un — par exemple lors de redémarrages d'instances cloud ou d'une maintenance progressive.
Protocole binaire à trames fixes
Conçu dès le départ avec des champs binaires de largeur fixe, lus directement par décalage d'octets sans aucune analyse syntaxique, pour un surcoût minimal.
Jetons de fencing
Chaque acquisition émet un jeton strictement croissant, qui vous protège même dans les instants où le serveur de verrous n'est pas parfaitement cohérent.
Cluster sans interruption
Un cluster à consensus Raft. Avec 3 nœuds, le service continue de fonctionner malgré les pannes et redémarrages de nœuds, et l'exclusion mutuelle n'est jamais rompue, même pendant une partition.
Clients natifs pour les langages majeurs
Des clients officiels pour Java/Kotlin, JavaScript/TypeScript, Python, Go, Rust, et plus encore — chacun avec une API idiomatique (asynchrone ou bloquante) qui s'intègre naturellement à son langage.
Guide de déploiement du serveur
Docker · Podman · Kubernetes · binaire — générez dès maintenant vos commandes d'exécution en mode simple ou cluster
→
Performance
Comparaison de vitesse avec Redisson (Redis), le système de verrou distribué le plus utilisé.
Clients TicketingRedis (Redisson RLock)
Redisréférence
4,909.1 ms · 8,148 ops/s
4,909.1 ms
La longueur de la barre correspond au temps total (ms) de l’exécution — plus court est plus rapide.
32 contended keys × 1,250 ops · concurrency 64 · mac mini m4 2024 basic (10 core), single local server, acknowledged release, 1s min-work budget
Plateformes prises en charge