日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

啟動(dòng)加速-異步初始化方法

更新時(shí)間:

SOFABoot 加快應(yīng)用啟動(dòng)速度的方式主要有 2 種:

本文介紹如何使用 SOFABoot 異步執(zhí)行 Bean 的初始化方法以提高應(yīng)用啟動(dòng)速度。

異步加速原理

在實(shí)際使用 Spring/Spring Boot 開發(fā)中,一些 Bean 在初始化過程中,會(huì)執(zhí)行一些準(zhǔn)備操作,如:

  • 拉取遠(yuǎn)程配置

  • 初始化數(shù)據(jù)源

在應(yīng)用啟動(dòng)期間,這些 Bean 會(huì)增加 Spring 上下文刷新時(shí)間,導(dǎo)致應(yīng)用啟動(dòng)耗時(shí)變長。

為了加速應(yīng)用啟動(dòng),SOFABoot 通過配置可選項(xiàng),將 Bean 的初始化方法(init-method)使用單獨(dú)線程異步執(zhí)行,加快 Spring 上下文加載過程,提高應(yīng)用啟動(dòng)速度。

異步加速實(shí)現(xiàn)

異步初始化 Bean 的原理是開啟單獨(dú)線程負(fù)責(zé)執(zhí)行 Bean 的初始化方法(init-method)。實(shí)現(xiàn)步驟示例如下:

  1. 引入依賴:在工程的 pom.xml 文件中,引入如下 starter。

    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>runtime-sofa-boot-starter</artifactId>
    </dependency>
  2. XML 配置:在 Bean 的 XML 中配置 async-init="true" 屬性,用于指定是否異步執(zhí)行該 Bean 的初始化方法,配置方法見下述示例。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:sofa="http://sofastack.io/schema/sofaboot"
            xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://sofastack.io/schema/sofaboot   http://sofastack.io/schema/sofaboot.xsd"
    default-autowire="byName">
        <!-- async init  test -->
        <bean id="testBean" class="com.alipay.sofa.runtime.beans.TimeWasteBean" init-method="init" async-init="true"/>
    </beans>
  3. 屬性配置:SOFABoot 異步初始化能力大小,通過配置線程池大小來體現(xiàn)。線程池用來異步執(zhí)行 Bean 初始化方法(init-method)。線程池的屬性值可以通過下述任一方法來配置。

    • 通過 application.properties 中的兩個(gè)屬性來指定。

      • com.alipay.sofa.boot.asyncInitBeanCoreSize:線程池基本大小,默認(rèn)值為 CPU 核數(shù)加一。

      • com.alipay.sofa.boot.asyncInitBeanMaxSize:線程池中允許的最大線程數(shù)大小,默認(rèn)值為 CPU 核數(shù)加一。

    • 通過 VM -D 參數(shù)來設(shè)置。