Documentation
¶
Overview ¶
Package store 提供存储与共享状态的抽象,是需要"记住东西"的机制的统一归属地。
选包标准:
- 核心能力是读/写/同步某种状态(内存、KV、锁、幂等记录等)
- 不涉及消息投递语义(那属于 messaging/)
- 可依赖 foundation/,不可依赖 resilience/messaging/transport/ 等上层
已有子包:
kvstore — 通用 KV 存储接口(内存/Redis 后端) cache — 带 TTL 的本地缓存 dlock — 分布式锁接口 ephemeral — 临时数据(自动过期) idempotency — 幂等性保障(依赖 kvstore) tally — 计分/投票 shard — 分片策略 loadbalance — 负载均衡算法(P2C、WRR 等)
Directories
¶
| Path | Synopsis |
|---|---|
|
Package cache 提供有界内存缓存(带淘汰)与防击穿加载器,是 web/API 读路径的常用原语:
|
Package cache 提供有界内存缓存(带淘汰)与防击穿加载器,是 web/API 读路径的常用原语: |
|
Package dlock 定义跨进程分布式锁与选主(leader election)的后端无关接口。
|
Package dlock 定义跨进程分布式锁与选主(leader election)的后端无关接口。 |
|
Package ephemeral 提供短期 TTL KV:不版本化、不持久,纯内存 + 到点自动过期。
|
Package ephemeral 提供短期 TTL KV:不版本化、不持久,纯内存 + 到点自动过期。 |
|
Package idempotency 提供幂等执行原语:同一 key 的重复请求只执行一次, 后续请求(含并发)复用首次结果,直到该 key 过期。
|
Package idempotency 提供幂等执行原语:同一 key 的重复请求只执行一次, 后续请求(含并发)复用首次结果,直到该 key 过期。 |
|
Package kvstore 定义一个带 TTL 的原子键值存储接口,供需要"跨进程共享状态"的 原语(counter / cooldown / idempotency)接入分布式后端(如 Redis)。
|
Package kvstore 定义一个带 TTL 的原子键值存储接口,供需要"跨进程共享状态"的 原语(counter / cooldown / idempotency)接入分布式后端(如 Redis)。 |
|
Package loadbalance 提供通用的负载均衡算法原语,不绑定任何 RPC/服务发现框架。
|
Package loadbalance 提供通用的负载均衡算法原语,不绑定任何 RPC/服务发现框架。 |
|
Package shard 给「有状态服务」提供多副本分片路由的薄机制:用一致性哈希把每个 key (streamKey / roomID / userID 等)确定性地归属到某一个实例,请求落到非归属实例时 反向代理转发给归属实例。
|
Package shard 给「有状态服务」提供多副本分片路由的薄机制:用一致性哈希把每个 key (streamKey / roomID / userID 等)确定性地归属到某一个实例,请求落到非归属实例时 反向代理转发给归属实例。 |
|
Package tally 提供高频累计聚合 + 批量刷写:把海量小额增量在内存里按 key 累加, 定时(或攒够阈值)合并成一批交给 flush 回调一次性处理,削平写放大。
|
Package tally 提供高频累计聚合 + 批量刷写:把海量小额增量在内存里按 key 累加, 定时(或攒够阈值)合并成一批交给 flush 回调一次性处理,削平写放大。 |
Click to show internal directories.
Click to hide internal directories.