我寫了一個旨在用於查看大型日誌文件的web應用程序。每個日誌文件可以大於500MB,並且每個文件包含100K行或更少的行。我使用supervisord來管理啓動8個龍捲風和nginx實例,以將請求重定向到8個龍捲風實例中的每一個實例。部署後,我注意到請求被鎖定,並且有大量的內存使用。Nginx和Tornado:發送大文件到http客戶端
我目前的實現是從文件中逐一讀取每一行並通過websocket發送它。我選擇通過websocket進行通信,因爲它允許我向用戶顯示進度。當只有一個或兩個用戶時,這很好,但是一旦有更多的用戶開始提交請求來加載文件,服務器就會陷入困境。
我希望有人可以建議我最好的方式發送大文件到客戶端瀏覽他們的Web瀏覽器,而不會阻止未來的請求。可以有30-50個用戶同時加載日誌文件。我已閱讀this解決方案,它似乎是我需要的,但我不知道這是否是最佳解決方案。