Cache缓存项目学习2

项目架构
缓存服务器设计
ETCD使用:

当Server实例初始化时建立ETCD客户端,当server启动时,进行服务注册。

当服务器实例化peeker时,进行服务发现,服务发现分为全量发现与增量发现。增量更新维持一个watch goroutine,监视etcd的变化,如有新的服务变化,更新peeker缓存。

GRPC使用

Server层进行grpc.Server创建,实现了Get/Set/Delete方法。

Group缓存层当本地缓存未命中时,会调用PickPeer,获取远程客户端发起gRPC调用。

对于Peer节点层,PickPeer会使用一致性哈希选择返回对应的client,方便对其进行RPC调用。

Group设计
复制代码
// Group 是一个缓存命名空间
type Group struct {
    name       string
    getter     Getter
    mainCache  *Cache                //缓存空间
    peers      PeerPicker            //选择器
    loader     *singleflight.Group    //单飞设计
    expiration time.Duration // 缓存过期时间,0表示永不过期
    closed     int32         // 原子变量,标记组是否已关闭
    stats      groupStats    // 统计信息
}

// groupStats 保存组的统计信息
type groupStats struct {
    loads        int64 // 加载次数
    localHits    int64 // 本地缓存命中次数
    localMisses  int64 // 本地缓存未命中次数
    peerHits     int64 // 从对等节点获取成功次数
    peerMisses   int64 // 从对等节点获取失败次数
    loaderHits   int64 // 从加载器获取成功次数
    loaderErrors int64 // 从加载器获取失败次数
    loadDuration int64 // 加载总耗时(纳秒)
}
相关推荐
小七-七牛开发者8 天前
TokenPilot:让 LLM Agent 长会话成本降 60%+ 的上下文管理
缓存·agent·token·context·上下文·推理成本
通信小呆呆15 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick15 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee15 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8615 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e15 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨15 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
ofoxcoding15 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
cqbzcsq15 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan15 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析