使用ConnectableFlux在elasticsearch上進行後臺批處理 - Jeroen van Wilgenburg
我們有一個Project Reactor應用程式,有很多透過id進行的單個get / insert操作,導致Elasticsearch叢集上的負載非常高,根據ID新增批處理讀取是一件非常繁瑣的事情,以至於我正在尋找其他解決方案。我最終想出了一個使用ConnectableFlux的解決方案。
場景是:每條訊息都會從elasticsearch中檢索文件,然後使用這個訊息中的資訊進行更新,然後再插入Elasticsearch中。當訊息在10秒鐘之內得到處理時,延遲不是什麼大問題。不好的是,我們的Elasticsearch叢集承受著壓力。峰值負載下的響應時間超過250毫秒。最終導致訊息處理過程中的幾分鐘延遲。
所有程式碼示例均在github上可用。我在本文中使用的程式碼段是經過簡化的版本(具有更少的日誌記錄和文件),以提高可讀性。源儲存庫還包含用於建立測試資料和執行效能測試的所有指令碼。它基本上是一個標準的Spring Initializr – Spring Boot應用程式。
詳細點選標題見原文。
相關文章
- 批處理檔案 bat 後臺執行BAT
- 後臺處理
- 08 Windows批處理之執行編譯後的程式Windows編譯
- PrepareStatement物件進行批處理的典型步驟順序REST物件
- .NET使用MailKit進行郵件處理AI
- 對比Elasticsearch,使用Doris進行高效日誌分析(上)Elasticsearch
- 英偉達在CES上推出AI處理平臺AI
- airflow 進行後端大資料中ETL處理(草稿)AI後端大資料
- 批處理概述
- BAT批處理判斷服務是否正常執行(批處理命令綜合應用)BAT
- 使用 Google Cloud 上的 tf.Transform 對 TensorFlow 管道模式進行預處理GoCloudORM模式
- 使用matlab對影像進行二值化處理Matlab
- 使用python進行簡單的媒體處理Python
- 在 WSL Ubuntu 上使用 .NET 進行跨平臺開發新手入門Ubuntu
- 如何使用WorkManager執行後臺任務(上)
- pytest 命令在 jenkins 批處理裡不能識別Jenkins
- 用批處理在指定目錄啟動Notebook
- 如何優雅的在Golang中進行錯誤處理Golang
- 使用 MediaCodec 在 Android 上進行硬解碼Android
- 使用 Eclipse 在 Fedora 上進行 PHP 開發EclipsePHP
- 使用Spring Boot + Redis 進行實時流處理 - vinsguruSpring BootRedis
- 使用aop來監控方法進行增強處理
- 在Linux中,如何使用awk和sed進行文字處理?Linux
- 如何在批處理模式下執行 top 命令模式
- 04 Windows批處理中的條件執行Windows
- 使用無伺服器實現檔案處理的批處理 - DZone Cloud伺服器Cloud
- 體驗在ESP32處理器上執行Linux 5.0Linux
- Windows 批處理之DATE命令的使用方法Windows
- Apache Beam,批處理和流式處理的融合!Apache
- 在Rainbond上使用Locust進行壓力測試AI
- 使用 Python+spaCy 進行簡易自然語言處理Python自然語言處理
- 如何使用卷積神經網路進行影像處理?卷積神經網路
- 使用 scipy.fft 進行Fourier Transform:Python 訊號處理FFTORMPython
- 什麼是批處理
- Dynamics CRM 2013 批處理
- bat 批處理字串操作BAT字串
- window 批處理檔案
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS