我們有幾個獨立運行的 java 程式實例,但寫入同一個日誌檔案。
當日誌檔案由多個進程實例輪換和寫入時,我們很少會遇到過時的 NFS 檔案句柄錯誤。
我們現在正在考慮為每個實例建立單獨的日誌檔案。有沒有人已經遇到這個問題並且有更好的解決方案。
謝謝奈恩
答案1
不要忘記 NFS 是不是符合 POSIX 標準的檔案系統。這個很關閉POSIX 合規性,這是人們通常會犯的錯誤。暴露其不一致性的領域之一是刪除和重新命名文件,尤其是目錄。
我的建議是避免讓兩個遠端進程存取 NFS 磁碟區上的相同文件,除非應用程式經過專門編碼以使用 NFS。
答案2
是的,如果您刪除另一個主機透過 NFS 開啟的文件,那麼您會看到此錯誤。
在這種情況下,單獨的日誌檔案(或使用 syslog,或不記錄到 NFS)聽起來是最好的主意。