启动加速-模块并行启动

SOFABoot 加快应用启动速度的方式主要有 2 种:

本文介绍如何通过模块并行启动以提高应用启动速度。

模块并行启动规则

SOFABoot 会根据 模块 properties 配置 中的 Require-Module 属性,计算模块依赖树,并根据依赖树确定模块之间的启动顺序。依赖树没有定义启动顺序的模块,可以并行启动,也可以串行启动。依赖树示例如下:

依赖树
  • 该依赖树表示:

    • 模块 B 和模块 C 依赖模块 A

    • 模块 F 依赖模块 E,模块 E 依赖模块 D

  • 该依赖树会保证:

    • 模块 A 必定在模块 B 和模块 C 之前启动

    • 模块 D 在模块 E 之前启动,模块 E 在模块 F 之前启动

  • 依赖树没有定义模块 B 与模块 C,以及模块 B、C 与模块 D、E、F 之间的启动顺序,这几个模块之间可以串行启动,也可以并行启动。

模块并行开启和关闭

模块并行功能的开启和关闭方式的说明如下:

  • SOFABoot 默认会并行启动模块。

  • 在使用过程中,如果您希望关闭并行启动,可以在 application.properties 中增加以下参数:

    com.alipay.sofa.boot.module-start-up-parallel=false