思考(九十二):DBProxy实现多级存储和事务处理

DBProxy 数据处理的主控室

后端开发一块重要的内容就是如何处理数据。比如:

问题 说明
统一的访问界面 如游戏服只需要 Load、Save、Begin、Commit、Rollback 接口
多级存储来降低成本 如热数据在 Redis ;冷数据在 MySQL ;长时间非活跃,则归档 OSS
同个逻辑涉及多个数据更新 要么全部成功、要么全部失败

解决这些问题,无非是加很多的控制逻辑,协调完成数据加载、保存

可以参考 Google GFS 的实现,把业务逻辑、控制逻辑和存储功能分开

  • 游戏服负责业务逻辑
  • DBProxy 负责控制逻辑
  • Redis、MySQL、Archive 负责缓存、存储、归档功能

模仿 GFS , DBProxy 也要有 3 个部分组成:

  • DBProxy 服务自身
  • DBProxy 的元数据 Meta
lock