2012-02-20 57 views
1

我已經開始用erlang玩alittle,並且發現它最有趣。Erlang,通過Erlang互聯網連接節點

我的問題是這樣的,我想建立一個服務器來運行一個web服務。該服務應該寫在erlang中,並且應該很容易發生變化,我希望能夠做很多熱代碼交換,代碼在另一臺機器上編寫和測試,它有一種方法可以很容易地從一個erlang noce到另一個,而不必將其包裝在文件中並傳輸文件?

我想我會重新聽到關於能夠在erlang虛擬機內傳遞閉包的信息,這是可行的嗎?或者可能甚至用開發機器上的編譯代碼更新服務器機器上的線程?

我知道這聽起來像是一種冒險的做事方式,而且它是,但它是我心目中的定位。

+1

請看這個問題:http://stackoverflow.com/q/7917108/431620並仔細閱讀其答案: http://stackoverflow.com/a/7927649/431620 – 2012-02-21 14:29:52

回答

1

如果我理解正確,你想要從一個節點加載模塊到另一個節點。在這種情況下,您可以使用在所有節點上加載模塊「Module」的bif nl(Module)。或者您可以使用nc(Module)當然節點必須共享相同的cookie並且必須連接(請參閱net_adm:ping(Node)

1

你不能真正擺脫文件傳輸到你的目標部署機器。至少你需要發送新版本的模塊。

一旦你更新了模塊,你可以選擇更新飛行範圍的代碼,只需重新加載一個模塊(如code:load_file/1)。一個完整的OTP upgraderebar可能會幫助這裏)或之間的東西(如updo或mochiweb reloader模塊)。這真的取決於你正在嘗試做什麼,更改模塊之間的依賴關係等。