有人可以詳細解釋當下一個處理器無法接收或處理任何數據時,像GetFile或QueryDatabaseTable這樣的NiFi處理器如何存儲行?數據會在內存中傳輸,然後在大小超過某個閾值時交換到磁盤?可能會有內存耗盡或數據丟失的風險?NiFi如何將流量數據存儲在內存或磁盤中
3
A
回答
5
我會建議你閱讀了Apache NiFi文件,明確了「阿帕奇NiFi在深度」,以瞭解數據是如何存儲,並通過NiFi:
https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html
簡短的回答是,數據總是寫在NiFi內部存儲庫的磁盤上。流文件具有持久化到流文件存儲庫的屬性和持久存儲到內容存儲庫的內容。除非處理器選擇將整個內容讀入內存以執行某些處理,否則內容不會保存在內存中。
當流文件在一個隊列中時,沒有任何內容被保存在內存中,只是流文件對象知道內容在磁盤上的位置。當隊列達到一定的大小時,這些流文件對象將被交換到磁盤上,這允許你有一個擁有數百萬流文件的隊列,而實際上沒有一百萬個流文件對象。
還有一個背壓的概念,用於根據流文件的數量或隊列中所有流文件的大小來控制隊列的最大大小。
相關問題
- 1. 如何將Python /文件數據存儲在內存中,直到寫入磁盤?
- 2. 序列化對象是否存儲在磁盤或內存中?
- 3. MongoDB數據庫中的數據如何存儲在磁盤上?
- 4. 如何將JSON數據存儲在磁盤上?
- 5. 如何將對象存儲到磁盤?
- 6. Erlang字典。它存儲在內存或磁盤上
- 7. MVC會話變量存儲內存VS磁盤緩存
- 8. 將內存中的H2數據庫保存到磁盤
- 9. 在磁盤或MongoDB上存儲文件
- 10. 在磁盤或內存中提高互斥量和信號量?
- 11. RDFlib'磁盤'存儲
- 12. RavenDB磁盤存儲
- 13. boost shared_memory_object存儲磁盤中的內容?
- 14. 如何將存儲過程的輸出存儲到磁盤上
- 15. Apache Cassandra磁盤上的數據存儲
- 16. 如何將數據存儲在存儲器或寄存器中
- 17. 存儲飼料流項NSObject在磁盤或作爲JSON
- 18. 緩存 - 磁盤或數據庫?
- 19. 將會話存儲在磁盤上
- 20. SQLite:ON磁盤與內存數據庫
- 21. 將內存數據庫保存到磁盤
- 22. 確定將數據存儲在內存或數據庫中
- 23. 什麼是內存?*。內存屬性控制 - 內存或磁盤?
- 24. 將用戶個人資料圖片存儲在磁盤或數據庫中?
- 25. 如何在Powershell中將流保存到磁盤?
- 26. 數據如何存儲在磁盤上? - EFI GUID
- 27. mysql數據如何存儲在磁盤上?
- 28. MySQL的varchar數據類型..如何獲取存儲在磁盤
- 29. 數據庫記錄如何存儲在磁盤上?
- 30. 如何根據磁盤路徑確定數據存儲?