gopush启动流程: 开启zookeeper 开启redis or mysql message启动: ~~~ InitConfig() 加载配置 runtime.GOMAXPROCS(Conf.MaxProc) 设置最大同时运行的操作系统进程数 log.LoadConfiguration(Conf.Log) 初始化log perf.Init(Conf.PprofBind) 初始化性能监控 pprof InitStorage() 初始化redis or mysql 连接池 InitRPC() 初始化rpc 服务端,供comet模块和web模块调用 InitZK() 初始化zookeeper(链接zk、创建节点、绑定节点信息并监听) process.Init(Conf.User, Conf.Dir, Conf.PidFile) 初始化工作目录 sig := InitSignal();HandleSignal(sig) 初始化热加载配置文件 ~~~ comet启动: ~~~ InitConfig() 加载配置 runtime.GOMAXPROCS(Conf.MaxProc) 设置最大同时运行的操作系统进程数 log.LoadConfiguration(Conf.Log) 初始化log perf.Init(Conf.PprofBind) 初始化性能监控 pprof UserChannel = NewChannelList() 创建一个 ChannelList,ChannelBucket个数是本地机器的逻辑CPU个数 StartStats() 初始化 通过http查看统计 StartRPC() 初始化rpc服务端,供web模块调用 StartComet() 初始化comet链接,tcp or websocket InitZK() 初始化zookeeper(链接zk、创建节点、绑定节点信息并监听、监听message节点) process.Init(Conf.User, Conf.Dir, Conf.PidFile) 初始化工作目录 signalCH := InitSignal();HandleSignal(signalCH) 初始化热加载配置文件 ~~~ web启动: ~~~ InitConfig() 加载配置 runtime.GOMAXPROCS(Conf.MaxProc) 设置最大同时运行的操作系统进程数 log.LoadConfiguration(Conf.Log) 初始化log InitZK() 初始化zookeeper(链接zk、监听comet节点、监听message节点) perf.Init(Conf.PprofBind) 初始化性能监控 pprof StartHTTP() 初始化http服务 process.Init(Conf.User, Conf.Dir, Conf.PidFile) 初始化工作目录 signalCH := InitSignal();HandleSignal(signalCH) 初始化热加载配置文件 ~~~