风言枫语  

这是在开发“幸运猜数”微信游戏的时候遇到的问题

对游戏感兴趣的,可以关注微信公众ID: EasyTool

回复【幸运猜数】开始游戏


之前提供的功能:【黄金】【双色球】【记事】等,都是无状态服务

而开发一款游戏,必然要求服务是有状态的

这样在SAE上的分布式环境下,还继续沿用无状态服务开发方式,必然遇到:

  1. 分布式服务对于请求,会进行负载均衡分配
  2. 在A服务器开始游戏,游戏操作被发到B服务器了
  3. 于是,B服务器不知道玩家要做什么
  4. 玩家发了好多开始游戏请求,结果同时在A、B服务器开始游戏,玩家体验就错乱了

那么,如何在SAE上开发有状态的应用呢?

宗旨就是:数据一致性保证

设计思路:

  1. 各分布服务共享关键数据
  2. 需要时同步关键数据
  3. 变化时更新关键数据

SAE提供了如下数据共享方式:

  1. 数据库
  2. 分布式session
  3. 分布式memcache

python开发,我选择了分布式memcache,采用pylibmc包

 Jun 22nd, 2013  python

原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

posted on 2013-08-12 18:44  风言枫语  阅读(273)  评论(0编辑  收藏  举报