Results 8 comments of Name5566

如果是分布式的服务器,无论如何也没有办法避免服务器之间的通讯问题,而这个问题并非一个容易做好的问题。为解决这个问题,提供一个通用的解决方案是合适的,不过实现确实有一些复杂。服务器两两互联并非一种设计,而是一种基础设施。这种基础设施提供了一种通讯的可能,但是实际每个游戏服务器的设计可以按需要使用这种通讯通道。比如说,某个设计中有 4 个服务器,它们之间只有一台服务器可以和其他服务器通讯,再比如说,某个设计中有 5 个服务器,它们之间可以相互通讯,无论是哪一种服务器的设计,无论服务器之间是什么样的规则,底层的框架都可以通过轻松的配置来支持这种框架设计的实现。Leaf 希望为框架设计者提供帮助,而本身 Leaf 应该是比框架更加低层级的工具。

> > 如果是分布式的服务器,无论如何也没有办法避免服务器之间的通讯问题,而这个问题并非一个容易做好的问题。为解决这个问题,提供一个通用的解决方案是合适的,不过实现确实有一些复杂。服务器两两互联并非一种设计,而是一种基础设施。这种基础设施提供了一种通讯的可能,但是实际每个游戏服务器的设计可以按需要使用这种通讯通道。比如说,某个设计中有 4 个服务器,它们之间只有一台服务器可以和其他服务器通讯,再比如说,某个设计中有 5 个服务器,它们之间可以相互通讯,无论是哪一种服务器的设计,无论服务器之间是什么样的规则,底层的框架都可以通过轻松的配置来支持这种框架设计的实现。Leaf 希望为框架设计者提供帮助,而本身 Leaf 应该是比框架更加低层级的工具。 > > 无中心是没什么必要的。因为你说无中心,我还以为你是想每两个服务器都互联,类似做paxos、raft这种,这就太复杂了,而且这些一致性协议性能损失也比较大,引入游戏内是不太划算的; > 看你的解释,应该只是需要互通的两个服务之间的互联吧?这个分布式的基本都有的,没问题 嗯,你可以这样理解。Leaf 希望提供基础设施,基于这个设施搭建各种服务器架构。而 Leaf 本身不是架构。但 Leaf 希望提供的基础设施又不同于简单通讯协议之类的,而是直接可用的,高度封装的,正如上面说的接口形式。

mysql 和 mongodb 是不同类型的数据库。当然,你也可以想下办法。但是 mysql 肯定不是最佳选择。

experiment 分支支持:https://github.com/name5566/leaf/tree/experiment

考虑是否存在必要性,等待进一步的需求再修改

可以参考 @zsai001 的版本:https://github.com/zsai001/leaf_cluster

你可以考虑自己修改一下。