SOFABoot-08-啟動加速

前言

大家好,我是老馬。

sofastack 其實出來很久了,第一次應該是在 2022 年左右開始關注,但是一直沒有深入研究。

最近想學習一下 SOFA 對于生態的設計和思考。

sofaboot 系列

SOFABoot-00-sofaboot 概覽

SOFABoot-01-螞蟻金服開源的 sofaboot 是什么黑科技?

SOFABoot-02-模塊化隔離方案

SOFABoot-03-sofaboot 介紹

SOFABoot-04-快速開始

SOFABoot-05-依賴管理

SOFABoot-06-健康檢查

SOFABoot-07-版本查看

SOFABoot-08-啟動加速

SOFABoot-09-模塊隔離

SOFABoot-10-聊一聊 sofatboot 的十個問題

啟動加速

SOFABoot 提供了模塊并行加載以及 Spring Bean 異步初始化能力,用于加快應用啟動速度。

模塊并行加載參考相應文檔,下面介紹如何使用 SOFABoot 異步初始化 Spring Bean 能力來提高應用啟動速度。

引入依賴

SOFABoot 在 v2.6.0 開始提供異步初始化 Spring Bean 能力,引入如下 Starter 即可:

<dependency><groupId>com.alipay.sofa</groupId><artifactId>runtime-sofa-boot-starter</artifactId>
</dependency>

使用場景

在實際使用 Spring/Spring Boot 開發中,會有一些 Bean 在初始化過程中執行準備操作,如拉取遠程配置、初始化數據源等等;

在應用啟動期間,這類 Bean 會增加 Spring 上下文刷新時間,導致應用啟動耗時變長。

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

使用方法

異步初始化 Bean 的原理是開啟單獨線程負責執行 Bean 的初始化方法(init-method),因此在使用過程中,除了引入上述依賴管理,還需要在 Bean 的 xml 定義中配置 sofa:async-init=“true” 屬性,用于指定是否異步執行該 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.xsdhttp://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" sofa:async-init="true"/>
</beans>

配置

SOFABoot 異步初始化能力提供兩個屬性配置,用于指定負責異步執行 Bean 初始化方法(init-method)的線程池大小:

  • com.alipay.sofa.boot.asyncInitBeanCoreSize > 線程池基本大小,默認值為 CPU 核數加一 + com.alipay.sofa.boot.asyncInitBeanMaxSize > 線程池中允許的最大線程數大小,默認值為 CPU 核數加一

配置可以通過 VM -D 參數或者 Spring Boot 配置文件 application.yml 設置。

小結

希望本文對你有所幫助,如果喜歡,歡迎點贊收藏轉發一波。

我是老馬,期待與你的下次相遇。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898677.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡單實用!百度AI + Raphael AI = 免費生圖

簡單實用&#xff01;百度AI Raphael AI 免費生圖 -- ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/b55eda9141d34697b05db0cd60f62b75.png#pic_center) 第一步&#xff1a;下載或截取一些好看的圖片當參考圖片 第二步&#xff1a;用百度AI描述你想要的圖片&…

React中組件通訊與插槽

一、為DOM組件設置Props 1.用JSX語法對標簽的類名進行設置屬性名是className&#xff1b; 2.用JSX語法對標簽的樣式進行設置要使用鍵值對進行設置&#xff0c;帶“-”時用小駝峰方法來書寫&#xff1b; 3.當一個標簽的屬性過多時&#xff0c;可以通過JSX語法進行展開設置&am…

自定義reset50模型轉換到昇騰om

目錄 原始轉換腳本 腳本運行報錯 基于reset50 模型的自定義網絡 基本網絡結構 卷積模塊定義示例 Bottleneck定義示例 網絡定義示例 改進的轉換腳本 腳本運行報錯channels不匹配 腳本運行報錯維度不匹配 模型輸入數據的類型 tensor size NCHW和NHWC 自定義網絡的通…

vue3:十一、主頁面布局(進入指定菜單頁面,默認鎖定到左側菜單)

一、效果 直接進入home頁面&#xff0c;直接展開對應的菜單項 二、具體實現 1、菜單容器增加默認選中變量 在菜單容器中將默認展開菜單default-openeds修改為默認選中菜單default-active 2、引入useRoute方法 引入該方法為了獲取當前頁面的路徑 import { useRoute } from …

六十天前端強化訓練之第二十七天之Pinia 狀態管理全解與購物車實戰案例

歡迎來到編程星辰海的博客講解 看完可以給一個免費的三連嗎&#xff0c;謝謝大佬&#xff01; 目錄 一、Pinia 深度解析 1. Pinia 核心設計 2. 核心概念圖解 3. Store 類型對比 Option Store&#xff08;選項式&#xff09; Setup Store&#xff08;組合式&#xff09; …

計算機網絡技術服務管理基于Spring Boot-SSM

目錄 一、引言 二、用戶需求分析 三、功能介紹 ??3.1.資源管理?&#xff1a; ?3.2.故障管理?&#xff1a; ?3.3.性能管理?&#xff1a; ?3.4.安全管理?&#xff1a; ?3.5.配置管理?&#xff1a; ?3.6.日志管理?&#xff1a; ?3.7.用戶管理?&#xff1…

深度學習驅動下的字符識別:挑戰與創新

一、引言 1.1 研究背景 深度學習在字符識別領域具有至關重要的地位。隨著信息技術的飛速發展&#xff0c;對字符識別的準確性和效率要求越來越高。字符識別作為計算機視覺領域的一個重要研究方向&#xff0c;其主要目的是將各種形式的字符轉換成計算機可識別的文本信息。近年…

Java多線程與高并發專題——Future 是什么?

引入 在上一篇Callable 和 Runnable 的不同&#xff1f;的最后&#xff0c;我們有提到和 Callable 配合的有一個 Future 類&#xff0c;通過 Future 可以了解任務執行情況&#xff0c;或者取消任務的執行&#xff0c;還可獲取任務執行的結果&#xff0c;這些功能都是 Runnable…

【vue的some和filter】

在 Vue 中&#xff0c;some 和 filter 是兩種不同的數組方法&#xff0c;分別用于處理數據篩選和條件判斷。以下是它們在 Vue 中的具體用法和區別&#xff1a; 一、filter 方法 作用&#xff1a;對數組進行過濾&#xff0c;返回符合條件的新數組。 使用場景&#xff1a;常用于…

用ArcGIS做一張符合環評要求的植被類型圖

植被類型圖是環境影響評價&#xff08;環評&#xff09;中的重要圖件&#xff0c;需滿足數據準確性、制圖規范性和信息完整性等要求。本教程將基于ArcMap平臺&#xff0c;從數據準備到成果輸出&#xff0c;詳細講解如何制作符合環評技術規范的植被類型圖。 ArcGIS遙感解譯土地…

Fourier-Lerobot——把斯坦福人形動作策略iDP3封裝進了Lerobot(含我司七月人形研發落地實踐)

前言 近期在摳lerobot源碼時&#xff0c;看到其封裝了ALOHA ACT、diffusion policy、π0時&#xff0c;我就在想&#xff0c;lerobot其實可以再封裝下idp3 我甚至考慮是否從我聯合帶的那十幾個具身研究生中選幾個同學做下這事&#xff0c;對他們也是很好的歷練然當25年3.18日…

MySQL拒絕訪問

1. 問題 使用圖形界面工具連接MySQL數據庫&#xff0c;拒絕訪問&#xff01; 2. 解決方法 以管理員的身份打開cmd&#xff0c;輸入命令&#xff0c;啟動MySQL net start mysql版本號 3. 參考 暫無

多模態SVG生成新標桿:StarVector從圖像文本生成高精度SVG的AI模型

一、引言&#xff1a;矢量圖形的崛起與挑戰 在現代數字世界中&#xff0c;圖像扮演著至關重要的角色&#xff0c;而可伸縮矢量圖形&#xff08;SVG&#xff09;正因其獨特的優勢&#xff0c;在網頁設計、圖形設計等領域占據著越來越重要的地位。與傳統的基于像素的柵格圖像不同…

Netty——BIO、NIO 與 Netty

文章目錄 1. 介紹1.1 BIO1.1.1 概念1.1.2 工作原理1.1.3 優缺點 1.2 NIO1.2.1 概念1.2.2 工作原理1.2.3 優缺點 1.3 Netty1.3.1 概念1.3.2 工作原理1.3.3 優點 2. Netty 與 Java NIO 的區別2.1 抽象層次2.2 API 易用性2.3 性能優化2.4 功能擴展性2.5 線程模型2.6 適用場景 3. 總…

游戲引擎學習第175天

回顧和今天的計劃 今天的主要任務是完成稀疏 Unicode 支持。之前我們已經完成了所有的思考和設計工作&#xff0c;但代碼部分尚未完成&#xff0c;因為有許多內容需要調整和重構。因此&#xff0c;今天的目標就是把這些內容全部整理好并最終實現。 回顧當前測試資源構建器的狀…

零基礎上手Python數據分析 (7):Python 面向對象編程初步

寫在前面 回顧一下,我們已經學習了 Python 的基本語法、數據類型、常用數據結構和文件操作、異常處理等。 到目前為止,我們主要采用的是 面向過程 (Procedural Programming) 的編程方式,即按照步驟一步一步地編寫代碼,解決問題。 這種方式對于簡單的任務已經足夠,但當程序…

CNN的空間歸納偏置(Inductive Bias):深入解析其本質與影響(與transformer的比較)

CNN的空間歸納偏置&#xff08;Inductive Bias&#xff09;&#xff1a;深入解析其本質與影響 在深度學習領域&#xff0c;卷積神經網絡&#xff08;Convolutional Neural Networks, CNN&#xff09;和Transformer代表了兩種截然不同的設計哲學。CNN憑借其卓越的性能長期主導計…

1-4 麻雀優化深度核極限學習機超參數

本博客來源于CSDN機器魚&#xff0c;未同意任何人轉載。 更多內容&#xff0c;歡迎點擊本專欄目錄&#xff0c;查看更多內容。 目錄 0.引言 1.原理 2.具體實現 3.結語 0.引言 在博客【深度核極限學習機】里我們講述了深度核極限學習機原理&#xff0c;今天我們對其繼續進…

miniconda安裝保姆級教程|win11|深度學習環境配置

一、官網安裝miniconda miniconda官網&#xff1a;Miniconda - Anaconda 點擊Download按鈕 在紅框位置輸入郵箱并點擊submit&#xff0c;下載鏈接將會發到郵箱中 郵箱中將會收到如圖所示郵件&#xff0c;點擊下載 選擇windows對應的miniconda安裝包 miniconda安裝包安裝完成如…

AI安全、大模型安全研究(DeepSeek)

DeepSeek 點燃AI應用革命之火,但安全 “灰犀牛” 正在逼近 DeepSeek-R1國產大模型的發布,以技術創新驚艷了全球,更是極致的性價比推動國內千行百業接入 AI,政府、企業競速開發智能業務處理、智能客服、代碼生成、營銷文案等應用,“落地效率” 成為第一關鍵詞。然而與此相…