Ticketing
文档
light_mode
language
中文
Ticketing
用一个 key 就能整理多进程、多服务器执行顺序的轻量快速分布式锁服务
当多个进程或服务器同时操作同一资源(账户、订单、库存、批处理任务……)时,就会发生竞争。 Ticketing 用一套基于 TCP 的二进制协议解决这个问题 —— 客户端
获取(acquire)
一个具名的 key,穿过临界区之后再
释放(release)
。在此期间,服务器会以 FIFO 顺序为等待者排队, 即便客户端崩溃,
lease
过期机制也会作为安全网兜底。
⚡
二进制帧协议
从一开始就采用固定宽度的二进制字段设计,无需解析即可通过偏移量直接读取 —— 每次请求的开销降到最低。
🔑
围栏令牌(Fencing Token)
每次获取锁都会签发一个单调递增的令牌,即便锁服务器在某一时刻并非完全一致,也能保证安全。
🔄
无停机集群
基于优先级的主备故障切换。最少 2 台即可实现重启、故障时服务不中断。
🌐
8 种语言的官方客户端
在同一套字节级协议之上,为每种语言提供符合其习惯的自然 API(异步或阻塞)。
🚀
服务器部署指南
Docker · Podman · Kubernetes · 二进制 —— 立即生成单机/集群运行命令
→
支持平台
🦀
Rust
GitHub
Rust
home_and_garden
toml
☕
Java, Kotlin
GitHub
Java, Kotlin
home_and_garden
xml
kts
📦
JavaScript, TypeScript
GitHub
JavaScript, TypeScript
home_and_garden
bash
bash
bash
🐍
Python
GitHub
Python
home_and_garden
bash
🔷
C#
GitHub
C#
home_and_garden
bash
powershell
🐹
Go
GitHub
Go
home_and_garden
bash
💎
Ruby
GitHub
Ruby
home_and_garden
bash