FarmVille扩展性上的经验教训
1. 交互式游戏写操作很重
典型的Web应用读的操作比写操作多很多,所以很多通用架构并不适用于交互式游戏。读操作很重可以通过添加缓存来解决。写操作很重则需要进行数据分区以及采用基于内存的架构。
2. 每个模块都设计成独立的服务
独立开每个模块可以降低一个模块拖垮其他模块的概率。必要时可以停止一些功能以缓解系统压力。
3. 缓存Facebook数据
当严重依赖于外部模块时可以考虑通过缓存外部模块的数据来降低延迟。
4. 提前考虑新版本相关的使用高峰
5. 数据抽样
当分析海量数据的时候,可以通过数据抽样找到问题,不需要处理所有的数据。抽样数据同样可以找到问题而且能减少很大的工作量。
