延遲載入演算法微服務的模型
基於SpringBoot的演算法微服務,通常在啟動階段載入演算法模型。但因為業務上,模型大小和數量是動態的,因此這一過程短則1分鐘,長則5+分鐘。在啟動時載入導致的啟動時間過長,會影響服務自身的監控告警、健康檢測。
那麼,理想的方式是先將服務啟動,然後再載入演算法模型。為此,我需要一個由SpringBoot提供的觀察者模式的事件,在服務自身啟動後觸發。
修改前後的程式碼示例如下:
@Service
@Log4j2
public class QasEngine {
@PostConstruct
public void bootstrap() {
//獲取後設資料
//載入演算法模型
}
}
@Service
@Log4j2
public class QasEngine implements ApplicationListener<ApplicationReadyEvent> {
@PostConstruct
public void bootstrap() {
//獲取後設資料
}
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
//載入演算法模型
//懶載入其他型別的服務
}
}
需要注意的是,如果你的業務存在HSF、MetaQ等服務,請延遲啟動這些服務,直至演算法模型載入完畢。
相關文章
- 如何建立 Laravel 延遲載入的服務提供者Laravel
- Mybatis延遲載入、快取MyBatis快取
- EF中延遲載入的那些事
- Spring Boot 2.2 中的延遲載入Spring Boot
- js延遲載入的方式有哪些?JS
- 影像延遲載入 && 列表圖順序載入
- mybatis延遲載入和快取MyBatis快取
- JavaScript 中的延遲載入屬性模式JavaScript模式
- VIM Lazy Load 懶載入/延遲載入技術
- 前端效能優化——延遲載入和非同步載入前端優化非同步
- [譯] 網速敏感的視訊延遲載入方案
- SAP Spartacus 的延遲載入 Lazy load 設計原理
- Mybatis【20】-- Mybatis延遲載入怎麼處理?MyBatis
- 延遲載入的一些知識和誤區
- 關於js延遲載入(非同步操作)的方式JS非同步
- 啟動優化之動態庫延遲載入優化
- 基於rabbitmq延遲外掛實現分散式延遲任務MQ分散式
- 如何實現 SAP UI5 的 Lazy Loading(延遲載入,懶載入)試讀版UI
- SAP 電商雲 Spartacus UI 模組延遲載入的入口程式UI
- [譯] 延遲載入 React Components (用 react.lazy 和 suspense)React
- 網路延遲對事務的影響
- RabbitMQ延遲訊息的延遲極限是多少?MQ
- js:原生多張圖片延遲載入(圖片自己找)JS
- Angular入門到精通系列教程(11)- 模組(NgModule),延遲載入模組Angular
- 使用JPA和Hibernate延遲載入實體屬性的最佳方法 - Vlad Mihalcea
- SAP 電商雲 Spartacus UI 支援延遲載入的新功能的入口設計UI
- springboot為什麼要用延遲匯入?Spring Boot
- mosn基於延遲負載均衡演算法 -- 走得更快,期待走得更穩負載演算法
- 轉化率模型之轉化資料延遲模型
- Mybatis09_一對一、一對多、多對多、延遲載入MyBatis
- js延遲載入的方式中,只有IE瀏覽器支援的是哪一種方式JS瀏覽器
- 延遲繫結
- 使用交叉點觀察器延遲載入影象以提高效能【譯】
- 精盡MyBatis原始碼分析 - SQL執行過程(四)之延遲載入MyBatis原始碼SQL
- 直播短影片原始碼,延遲任務的解決方法原始碼
- Angular Component 延遲載入 Lazy Load 的一個依賴注入的問題以及解決方案Angular依賴注入
- 一些關於 SAP Spartacus 元件和模組延遲載入的問題和解答元件
- PostgreSQL中的複製延遲SQL
- redis 延遲佇列Redis佇列