请选择 进入手机版 | 继续访问电脑版

NoahFrame

 找回密码
 Register Now
搜索
热搜: redis mysql tutorial
查看: 820|回复: 1

这块的实现逻辑具体在哪里?

[复制链接]

3

主题

4

帖子

31

积分

Newbie

Rank: 1

积分
31
QQ
发表于 2017-4-19 22:09:10 | 显示全部楼层 |阅读模式
masterserver管理所有的loginserver和所有的worldserver,区服的状态和列表,可由worldserver主动发消息更新(所有的loginserver和worldserver一启动就要向master注册),它是整个额架构中的老大,中心节点。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码



论坛没有找到NF框架分布式相关的资料
回复

使用道具 举报

30

主题

111

帖子

632

积分

Administrator

Rank: 9Rank: 9Rank: 9

积分
632
发表于 2017-4-20 04:34:24 | 显示全部楼层
首先我们知道,避免单点肯定需要多开serevr,比如master。

1:可以在配置中配置多个masterserver,login和world作为client会自动去读取配置连接所有的master,具体配置文件看server.xlsx,具体代码参考bool NFCWorldToMasterModule::AfterInit() 和 bool NFCLoginToMasterModule::AfterInit()函数;

2:负载均摊有一个前提就是,数据的处理在服务器中无上下文环境依赖,比如数据均存储在redis,那么在转发消息的时候可以使用sendmsgbysuit接口(NFINetClientModule),此接口会根据一定规则转发到个服务器,只要作为client连接其他服务器,都有这个功能,具体就看你怎么在业务中使用;

3:关于扩容,当插入新的服务器后,会主动连接到现有的服务器,比如插入新的gameserver,会主动连接到world,world会广播此服务器到其他proxy,proxy转发消息的时候,如果是使用sendmsgbysuit接口,则会自动分摊消息到新插入的服务器,具体内容请看 http://bbs.noahframe.com/forum.p ... &extra=page%3D1和proxy的netclientmodule。



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | Register Now

本版积分规则

 

GMT+8, 2018-8-15 17:43 , Processed in 0.077071 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表