Closed yanisCC closed 1 year ago
如果假设一个MMO项目,是一个通服的服务器架构
1. 假设逻辑服是一个有状态的(数据)
那么每个逻辑服可能连接不同的数据库,获取不同玩家的相关数据,无法做到通服这样的感觉 这种情况该如何设计?
2. 假设逻辑服是一个无状态的(数据)
玩家每次登录时,都会选择负载最小的逻辑服进行登录,那么这样所有的逻辑服是不是都访问一个数据库? 并发量足够的话,是否会考虑到单数据库的承载能力?是否有优化的空间? 那么,跨场景匹配,或者进行跨逻辑服战斗时,如何做玩家的数据迁移,将两个在逻辑服中有缓存的数据,同步到一个逻辑服中?
A1: 使用同一个数据库;
A2: 2.1 是不是访问一个数据库取决于你的业务需求,还有你配置数据库的方式。 2.2 框架不关心数据库方面的问题,也不属于框架应该关心的;关于数据库可以到对应的产品中找解决方案。 2.3 对于跨场景、跨服是简单的,只需要启动一个公用的战斗逻辑服,各服务器之间就可以交互了,不需要考虑太多。可以参考 ioGame 架构多样性 (yuque.com) 文档中的同进程亲和性的部署方式;
关于通服的服务器架构,可以适当的参考 动态绑定游戏逻辑服 (yuque.com) 文档;当有多个战斗逻辑服时,可以将玩家与这些战斗逻辑服绑定。
如果假设一个MMO项目,是一个通服的服务器架构
1. 假设逻辑服是一个有状态的(数据)
那么每个逻辑服可能连接不同的数据库,获取不同玩家的相关数据,无法做到通服这样的感觉 这种情况该如何设计?
2. 假设逻辑服是一个无状态的(数据)
玩家每次登录时,都会选择负载最小的逻辑服进行登录,那么这样所有的逻辑服是不是都访问一个数据库? 并发量足够的话,是否会考虑到单数据库的承载能力?是否有优化的空间? 那么,跨场景匹配,或者进行跨逻辑服战斗时,如何做玩家的数据迁移,将两个在逻辑服中有缓存的数据,同步到一个逻辑服中?