公司起名网站十大排名可以免费做网站推广的平台
DBProxy 数据处理的主控室
后端开发一块重要的内容就是如何处理数据。比如:
问题 | 说明 |
---|---|
统一的访问界面 | 如游戏服只需要 Load、Save、Begin、Commit、Rollback 接口 |
多级存储来降低成本 | 如热数据在 Redis ;冷数据在 MySQL ;长时间非活跃,则归档 OSS |
同个逻辑涉及多个数据更新 | 要么全部成功、要么全部失败 |
解决这些问题,无非是加很多的控制逻辑,协调完成数据加载、保存
可以参考 Google GFS 的实现,把业务逻辑、控制逻辑和存储功能分开
- 游戏服负责业务逻辑
- DBProxy 负责控制逻辑
- Redis、MySQL、Archive 负责缓存、存储、归档功能
模仿 GFS , DBProxy 也要有 3 个部分组成:
- DBProxy 服务自身
- DBProxy 的元数据 Meta
- DBProxy Client API
DBProxy 服务自身
DBProxy 主要有以下功能:
- 协调数据加载和保存
- 协调数据冷热切换
- 非关联数据的并发事务
- 关联数据的串行事务