先后遇到两种游戏后台架构,做个简单描述和对比
1. 在线架构
接入层长连接,
当玩家登录zone时,从cache拉取数据,并在zone的内存中保持数据拷贝,以后数据的修改直接在拷贝上进行,拷贝定时回写cache
当玩家登出时,回写cache并删除拷贝
当一个玩家需要修改另一个玩家的数据时,需要发消息给被修改玩家所在的zone
业务逻辑在zone上实现,cache只是负责处理拉取和回写数据
2. 不在线架构
接入层短连接,
每个玩家的每条命令都会建立一条连接,命令处理完释放连接,类比cgi
logic每次都会向cache拉取数据, 命令处理完后回写数据
当一个玩家需要修改另一个玩家的数据时,也是从cache拉取数据,修改,最后回写
业务逻辑在logic上实现,cache只是负责处理拉取和回写数据
不在线架构适合:
1. 需要频繁修改其他玩家信息的, 如sns游戏
2. 连接不稳定的,如手机游戏