漫遊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
相關文章
- 精典的DOS批處理高階應用
- APM RUEI processor處理程式hang死處理方法
- Nifi:nifi內建處理器Processor的開發Nifi
- Windows批處理學習(二)——批處理(3)薦Windows
- 批處理框架框架
- JDBC 批處理JDBC
- 碎片批處理
- 批處理命令
- 批處理概述
- Java經典例項:處理單個字串Java字串
- Apache Beam,批處理和流式處理的融合!Apache
- windows批處理之一:字串處理Windows字串
- 基於HTML5的WebGL經典3D虛擬機器房漫遊動畫HTMLWeb3D虛擬機動畫
- Windows批處理命令Windows
- 批處理命令大全
- 批處理壓縮
- 批處理----學習
- DOS 批處理命令
- java當中的批處理Java
- JDBC當中的批處理JDBC
- 批處理中的符號符號
- 批處理中的for詳解
- 經典乾貨:Docker 常見故障排查處理Docker
- ORA-12547經典錯誤處理
- 經典量化策略——雙均線策略(期貨)
- MLOps模型部署的三種策略:批處理、實時、邊緣計算模型
- 批處理打補丁的方法
- window 批處理檔案
- 什麼是批處理
- 批處理髮郵件
- 批處理檔案命令
- Windows批處理檔案Windows
- bat批處理檔案BAT
- bat 批處理字串操作BAT字串
- Mac經典戰略策略遊戲:Mac遊戲
- 第十九篇:處理殭屍程式的兩種經典方法
- ■■■照片後期處理經典例項教程1500篇■■■
- 管理大容量匯入的批處理