Skip to content

Chapter 21:NFCConfigModule

yigao edited this page Jun 30, 2022 · 2 revisions

NFCConfigModule系统配置模块

NFCConfigModule主要负责加载系统的配置,加载--Plugin获取到的目录下得lua配置, 主要分三部分:

  • 首先加载plugin.lua,通过--Server参数,找到对应的服务器加载模块,获取到需要加载的so文件。

    当我们使用--Server=TestServer时,找到的就是红圈里的TestServer,将加载libNFKernelPlugin.so,libNFTestPlugin.so两个so文件 9}T%XNX_J44XF55Z0D8OQ

  • 然后将加载LogConfig.lua, 获取到日志系统的配置,方便打印日志。详情见* NFCLogModule模块: 日志系统

  • 然后将加载服务器配置,根据--Server和--ID来加载对应的服务器配置,比如--Server=ProxyServer,--ID=15.100.2.1, 系统将加载ProxyServer.lua, 并找到ServerId = "15.100.2.1"的那个配置:

I@(TG KP}T$QBMD2}%F$X5V 值得一提的是--Server=AllServer的话,将加载所有的lua配置,因为系统这时候可能要一次性吧整个分布式都启动起来。

NFCConfigModule使用:

  • 你可以直接使用,缺陷是只有在module里,或者在有NFIPluginManager指针的地方才可以这么用。

      NFServerConfig* pConfig = FindModule<NFIConfigModule>()->GetAppConfig(NF_ST_LOGIN_SERVER);
    
  • 系统使用了NFConfigMgr对FindModule<NFIConfigModule>()进行了简单封装,一般都是这么用的:

     NFServerConfig* pConfig = NFConfigMgr::Instance()->GetAppConfig(NF_ST_LOGIN_SERVER);
    
  • 如果你想获取服务器的配置, 可以通过GetAppConfig+服务器类型ID来获取,当然你只能获取自己的服务器配置,如果你是ProxyServer的plugin,那么你只能获取到ProxyServer的配置,你是LoginServer,你就只能获取LoginServer的配置。如果你在LoginServer调用ProxyServer的配置的话,分布式运行的时候,将会报错崩溃,因为系统没有加载ProxyServer的配置.

  • NFServerConfig这个类用来存取服务器配置: