[英]Does Akka regulate actors based on available resources?
我有一組數據庫文檔(幾千個),我想為其運行一些數據遷移活動。 這些文檔中的每一個都包含對Windows文件系統中不同文件的引用。 這些文件存儲在通過共享文件夾訪問的文件服務器中。 我想做的是將文件移動到文件系統中的其他位置,然后根據文檔中的屬性重新排列它們。
我想到了以下設計:
這是幼稚的設計嗎? 我應該限制創建的角色多少,還是Akka根據處理器的可用性調節分配的資源? 文件系統方面是否存在任何問題,同時有太多請求處於活動狀態?
akka的默認線程池/執行上下文/調度程序每個內核都有一個線程,移動文件可能是一項阻塞操作,因此在給定的任何時刻,您移動的文件數僅與擁有內核的一樣多,在此期間,其他角色將被調用。
您可以將調度程序配置為使用更多線程來獲取更多的並行活動,或者將文件移動actor放置到不干擾其他actor的特定調度程序中。
也許更好的主意是將文檔視為通過系統傳遞的消息,最后,您將每個文檔枚舉為一條消息,將其發送給actor,該actor解析文件中的屬性,然后將其轉發給執行此操作的actor。實際移動。 這樣就可以根據磁盤的吞吐量等來決定有多少個解析器-actor實例和多少個move-actor實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.