一个 egg 应用能运行起来,并不单纯的靠 egg 模块,这个是用过的同学都知道的,但是到底它是如何跑起来的呢,整体涉及到了多少个模块呢,这篇文章就是大概跟大家粗略分析这些了,另外长期没更新的原因有以下几点
- 元旦回来后我开始进行了蚂蚁金服的面试(为期一个月);
- 过年嘛,玩去了;
- 准备离职与入职(蚂蚁金服面试成功 => P6);
首先 egg 应用跑起来离不开下面几点
- egg-bin(开发模式下)
- egg-scripts (线上环境,其实 egg-bin 也是跑的 egg-scripts)
- egg-cluster (由 egg-scripts 调用的,在其中涉及到 master-agent-worker 进程的分层以及各进程的进程守护与 IPC)
- egg(不多说了,默认的
this.options.framework
) - egg-core(egg 模块继承的模块,进行插件及配置的注入以及继承于 KoaApplication 启动应用,在 egg-cluster 中调用)
由于涉及的东西太多,不是一篇文档可以讲完的,所以我在 github 中专门建了一个仓库用于撰写
YOLO 的 github
这里只放上一个概论,有兴趣的同学自己去看下吧,复杂程度由低到高如下