pomelo服务器启动过程2
2015-01-05 16:46
169 查看
在pomelo服务器启动过程 一文中,知道了master服务器是如何启动其他服务器的。那么在最初开始app.start是启动过程又是如何的呢?
可以看看app.start的函数实现:
这里关键的函数appUtil.startByType并没有如我们所想的就调用到了starter.runServers(app);而是直接调用了utils.invokeCallback(cb);那么在startByType的callback中的函数appUtil.optComponents呢?该函数主要是启动了各个载入的组件。这其中就有master组件。只有master服务器会有master组件,而所有服务器都会有monitor组件。optComponents中会调用各个组件的start方法。看看master组件的start方法,正好是调用了master服务器的启动方法start。这样会导致runServers的调用。后续的过程就和pomelo服务器启动过程一致了。
可以看看app.start的函数实现:
Application.start = function(cb) { this.startTime = Date.now(); if(this.state > STATE_INITED) { utils.invokeCallback(cb, new Error('application has already start.')); return; } var self = this; appUtil.startByType(self, function() { appUtil.loadDefaultComponents(self); var startUp = function() { appUtil.optComponents(self.loaded, Constants.RESERVED.START, function(err) { self.state = STATE_START; if(err) { utils.invokeCallback(cb, err); } else { logger.info('%j enter after start...', self.getServerId()); self.afterStart(cb); } }); }; var beforeFun = self.lifecycleCbs[Constants.LIFECYCLE.BEFORE_STARTUP]; if(!!beforeFun) { beforeFun.call(null, self, startUp); } else { startUp(); } }); };
这里关键的函数appUtil.startByType并没有如我们所想的就调用到了starter.runServers(app);而是直接调用了utils.invokeCallback(cb);那么在startByType的callback中的函数appUtil.optComponents呢?该函数主要是启动了各个载入的组件。这其中就有master组件。只有master服务器会有master组件,而所有服务器都会有monitor组件。optComponents中会调用各个组件的start方法。看看master组件的start方法,正好是调用了master服务器的启动方法start。这样会导致runServers的调用。后续的过程就和pomelo服务器启动过程一致了。
相关文章推荐
- 无法在Web服务器上启动调试的解决过程
- XMPP协议学习笔记四(Openfire服务器启动过程)
- “无法自动进入单步执行服务器。未能调试远程过程。这通常说明未在服务器上启动调试”解决方案
- pomelo之master服务器的启动
- 基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
- 启动Rlogin客户和服务器的DNS的分组交换过程
- Hive Server的服务器启动过程分析
- XMPP协议学习笔记四(Openfire服务器启动过程)
- Tomcat服务器启动运行过程
- Redis服务器的启动过程分析
- 无法自动调试WebService,未能远程调试过程,这通常说明未在服务器上启动调试
- XMPP协议学习笔记四(Openfire服务器启动过程)
- AIX服务器启动过程介绍
- Redis服务器的启动过程分析
- pomelo 单独启动各个服务器
- World服务器的启动过程
- AIX服务器启动过程简单介绍
- XMPP协议学习笔记四(Openfire服务器启动过程)
- 启动erlang/OTP里面的Web服务器(application INETS启动过程代码分析)
- Redis服务器的启动过程分析