漫遊es-bulk processor批處理的經典策略
es 的程式碼也是相當的優雅!
bulk processor對於批處理的實現簡潔、並且功能豐富。這個套路常用,記錄一下。
1. 按照處理請求積壓數觸發server的請求(主動);
2. 按照處理請求積壓的位元組數觸發server請求(主動);
3. 定時觸發server請求(定時);
主動觸發實現:
// 對外的新增請求介面
public BulkProcessor add(ActionRequest request, @Nullable Object payload) {
this.internalAdd(request, payload);
return this;
}
// private 確保新增邏輯正常執行
// 加鎖-防止重複執行
private synchronized void internalAdd(ActionRequest request, @Nullable Object payload) {
this.ensureOpen();
this.bulkRequest.add(request, payload);
// 主動觸發
this.executeIfNeeded();
}
// 判斷是否執行
private void executeIfNeeded() {
this.ensureOpen();
// size, numbers任意符合即可執行
if(this.isOverTheLimit()) {
this.execute();
}
}
定時實現:
Executors.newScheduleThreadPool() 搞定。
參考:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk-processor.html
相關文章
- APM RUEI processor處理程式hang死處理方法
- Mac經典戰略策略遊戲:Mac遊戲
- Nifi:nifi內建處理器Processor的開發Nifi
- 批處理概述
- 經典乾貨:Docker 常見故障排查處理Docker
- Apache Beam,批處理和流式處理的融合!Apache
- MLOps模型部署的三種策略:批處理、實時、邊緣計算模型
- 經典量化策略——雙均線策略(期貨)
- java當中的批處理Java
- JDBC當中的批處理JDBC
- 經典回合策略遊戲《國王的恩賜2》今日正式上線!遊戲
- SpringBatch批量處理策略SpringBAT
- 什麼是批處理
- Dynamics CRM 2013 批處理
- bat 批處理字串操作BAT字串
- window 批處理檔案
- 組策略-處理-作用域
- 簡單實現批處理
- Python批處理:檔案操作Python
- MPP架構和批處理架構
- bat批處理常用指令碼BAT指令碼
- 批處理命令之tree命令
- 經典資料庫備份與還原處理(轉鄒建)資料庫
- Go 的錯誤處理策略 筆記Go筆記
- 經典量化策略——做市商交易(期貨)
- SpringBatch基本的批處理指導原則SpringBAT
- Windows批處理中的變數和值Windows變數
- kafka offset 過期處理策略Kafka
- BAT批處理判斷服務是否正常執行(批處理命令綜合應用)BAT
- 大資料爭論:批處理與流處理的C位之戰大資料
- 使用無伺服器實現檔案處理的批處理 - DZone Cloud伺服器Cloud
- 帶你認識FusionInsight Flink:既能批處理,又能流處理
- 管理十大經典理論
- 開啟windows批處理大門Windows
- 批處理最佳實踐 - Vlad Mihalcea
- 一個bug造就的經典遊戲....遊戲
- 【經典案例】Python詳解設計模式:策略模式Python設計模式
- 分散式系統的經典基礎理論分散式
- Spring Batch 基本的批處理指導原則SpringBAT