Ftp
FTP 伺服器“禮節”;快速和頻繁的連接/傳輸/斷開會話是否可以接受?
我的一些程式碼正在使用隊列將文件上傳到 FTP 伺服器。當文件排隊時,會進行連接嘗試,如果成功,則會上傳文件。一旦隊列為空,它將斷開伺服器。很簡單。
隊列可以並且將被多個執行緒訪問。在某些情況下,隊列完成,因此斷開連接,但隨後新文件立即排隊,並開始新的連接\上傳周期。在某些極端情況下,它在連接和斷開之間僅上傳1 個文件,只會重複該過程幾分鐘甚至幾小時。
我覺得這是不可接受的,並將相應地更改程式碼,但我想知道:
問題
假設我們會忽略時間和資源的明顯浪費(至少可以說,所有這些斷開/連接都是不必要的)。
FTP伺服器介意嗎?這樣的行為是不被接受的嗎,是不是很粗魯?它甚至可以被視為某種臨界洪水或錘擊嗎?
取決於伺服器管理員。給他們發電子郵件並詢問有關 AUP 的資訊。理想情況下,每台伺服器都有一個可調整的重新連接延遲。
我不會說這種行為是不好的。這實際上取決於 FTP 伺服器的角色和整個軟體平台架構。
考慮從 FTP 轉移,如果只是轉移到 FTPS,但最好是 SFTP。基於密碼的自動登錄長期以來一直不被推薦。
一般沒有。我幫助執行這樣的網站,我最大的煩惱是:
- 每秒多次登錄的人。通常這是來自客戶端的腳本,有人忘記在其中放置“睡眠”。
- 永遠不會註銷的人,因此我無法正確耗盡負載平衡器。
- 每個會話重複傳輸一個文件並同時啟動 100 到 1000 個連接的人。
- 傳輸超大文件的人,這些文件可以分成更小的批次。
- 連接到我們網站並期望它對於 FTP 等舊協議 100% 可靠的人。
還要記住,如果你連接到一個繁忙的站點,很多人會安排他們的工作在 5 秒、15 秒等執行 - 例如 1:00、1:05、1:10、1:15。如果您真的想成為一個好的消費者,請避免使用 5 秒或 0 秒的時間。您不僅可以幫助站點管理員,還可能會獲得更好的性能。調度的一些建議:
- 臨時執行你的工作(假設這不會總是在 0s 和 5s 上)
- 在 2-4、7-9 分鐘執行作業。這為在 0 和 5 開始完成的作業提供了一點緩衝。
- 在您的計劃作業中放置一個隨機睡眠,這樣它就不會總是同時訪問文件伺服器。
- 如果您能提供幫助,請不要將您的作業安排為每 5 分鐘執行一次以上。