我們有一個基於erlang的分佈式系統系統,其中包含一個服務器節點和數百個客戶端節點(系統通過內部網絡分佈)。我們要求所有客戶端節點都將連接到服務器節點,並嘗試使用sftp同時下載某個文件(大多數情況下所有客戶端節點將訪問相同的文件)。我們按照下載的文件的步驟是:erlang ssh_sftp start_channel函數調用失敗
建立服務器節點和客戶端節點之間的ssh連接SFTP使用如下函數調用:
ssh_sftp:start_channel/2
。然後按照下面的做函數調用讀取文件:
ssh_sftp:read_file/2
我們面對的問題是,當客戶端的數量較多,則觀察到幾個客戶端節點無法建立服務器節點之間的連接。即ssh_sftp:start_channel/2
函數調用失敗。
請有人請解釋我;
對於我們可以在單個系統中建立的sftp會話數量是否有任何限制?
連接請求失敗的原因是什麼?
我們在這種方法中做了什麼錯誤?
有沒有更好的解決方案,我們可以保證所有的客戶端節點都能夠連接到服務器並能夠下載文件。
觀察:我們嘗試連接25個客戶端節點到服務器;在第一次嘗試期間,只有2個節點無法連接,第二次嘗試5個節點無法連接。爲什麼這是隨機的行爲?
什麼是實際'ssh_sftp:start_channel/2'返回? – codeadict