延遲載入演算法微服務的模型
基於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快取
- Hibernate 延遲載入原理
- 延遲載入 Dex 檔案
- 關於延遲載入,立即載入的問題
- EF中延遲載入的那些事
- 影像延遲載入 && 列表圖順序載入
- mybatis延遲載入和快取MyBatis快取
- 圖片延遲載入策略(JavaScript)JavaScript
- javascript實現延遲載入效果JavaScript
- Spring Boot 2.2 中的延遲載入Spring Boot
- JavaScript 中的延遲載入屬性模式JavaScript模式
- JavaScript實現圖片的延遲載入JavaScript
- mybatis入門基礎(七)----延遲載入MyBatis
- 前端效能優化——延遲載入和非同步載入前端優化非同步
- VIM Lazy Load 懶載入/延遲載入技術
- 專案分享六:圖片的延遲載入
- Angular2+,路由預載入--預先載入延遲模組Angular路由
- [譯] 網速敏感的視訊延遲載入方案
- Mybatis【20】-- Mybatis延遲載入怎麼處理?MyBatis
- 關於js延遲載入(非同步操作)的方式JS非同步
- SAP Spartacus 的延遲載入 Lazy load 設計原理
- 延遲載入的一些知識和誤區
- SAP 電商雲 Spartacus UI 模組延遲載入的入口程式UI
- JS圖片延遲載入分析及簡單的demoJS
- hibernate延遲載入(get和load的區別)
- 啟動優化之動態庫延遲載入優化
- Web效能優化系列(3):如何延遲載入JSWeb優化JS
- 基於rabbitmq延遲外掛實現分散式延遲任務MQ分散式
- 在AngularJS中實現一個延遲載入的DirectiveAngularJS
- 【漸進】延遲載入機制的簡易實現(上)
- Angular入門到精通系列教程(11)- 模組(NgModule),延遲載入模組Angular
- js:原生多張圖片延遲載入(圖片自己找)JS
- Jquery.ScrollLoading圖片延遲載入技術jQuery
- Laravel容器延遲載入以及Auth擴充套件詳解Laravel套件
- DNS設定引起的登入延遲DNS
- 網路延遲對事務的影響
- RabbitMQ延遲訊息的延遲極限是多少?MQ