store

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

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 回调一次性处理,削平写放大。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL