当前位置: 首页 > news >正文

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 // 加载总耗时(纳秒) }
http://www.jsqmd.com/news/729958/

相关文章:

  • 别再手动一张张下了!用GEE Python API批量下载Landsat8 C02数据(附完整脚本)
  • 算法训练第十八天|20. 有效的括号
  • 华为防火墙与路由器的对比实验
  • Scikit-learn与TensorFlow机器学习框架选型指南
  • m4s-converter技术深度解析:构建个人视频库的专业解决方案
  • 嵌入式系统安全防护与FPGA设计实践
  • DOPE技术:合成数据驱动的6自由度物体姿态估计
  • SphereAR:超球面潜在空间在连续数据生成中的应用
  • 为什么92%的PHP开发者在PHP 9.0 Beta中踩坑?——异步HTTP客户端配置错误导致AI机器人响应延迟超800ms,附官方补丁包下载链接
  • 第一章:入门篇 — Maven 核心概念与基础使用
  • 专业K线回测工具|本地高速回测+自由拖拽积木式界面
  • 从零构建现代化CLI工具:设计理念、核心模块与Node.js实战
  • Windows开发,ini文件的读写操作
  • 产品经理如何逆袭?从入门到精通的AI进阶指南,让你成为产品圈的AI大神!
  • 飞书机器人接入openclaw问题
  • 别再踩坑了!关于QWidget样式表失效,Qt官方文档没明说的两个关键点
  • 手把手教你用BCDBoot修复Windows 11 UEFI启动,告别蓝屏和‘BCD store not found’
  • Warp源码深度解析(四):AI Agent原生集成——MCP协议、代码索引与Skills系统
  • 动态NIAH测试:提升大模型长文本处理能力的关键方法
  • PRIMO R1框架:让机器人具备动态推理能力的工业解决方案
  • hadoop集群设置为什么从节点ping的通主节点,主节点ping不通从节点
  • 高纯度氢气的内部构造,比你想象的更硬核
  • AI建站工具避坑指南:10个高频问题与实用解决方案
  • 如何用rpatool高效管理Ren‘Py游戏资源:从手动操作到自动化处理
  • 有效的括号
  • OpenCV图像处理与视频生成核心技术解析
  • 一念成仙经济学:打造房价永不涨的数字乌托邦,让勤劳真正致富
  • 别再手动一页页导入了!用这个JS脚本,5分钟搞定Illustrator批量打开多页PDF
  • Docker容器里pip install也报磁盘空间不足?可能是你的镜像和卷没管好
  • Arm架构原子浮点运算指令解析与应用