2011-07-23 64 views
1

我想用illang來說明分佈式應用程序的概念。我的系統目前有一臺服務器和一臺ATM。我儘量保持簡單。erlang分佈式銀行系統

目前我的應用程序在本地運行。我正在使用gen_server作爲銀行服務器和ATM之間的客戶端 - 服務器關係。我也有一個gen_fsm模塊來建議我的ATM有不同的狀態。爲了存儲我使用dict模塊的任何數據(我不想使用數據庫使事情更加複雜)。爲了保持進程活着(gen_servergen_fsm)我正在使用supervisor進程。我已經將所有模塊封裝爲應用程序,但目前它都是本地的。任何想法將不勝感激。

我想在兩個不同的節點上啓動相同的應用程序,並說明使用某種故障轉移/接管機制的分佈式概念,但我對使用哪些模塊沒有任何意見。

  • 是否必須使用目標系統(在某些時候我必須做一個熱升級到應用程序)
  • 什麼是正確的順序來做這些事情:首先升級,然後分發?

如果有人能給我一些關於如何完成所有這些事情的想法,我將不勝感激。

+0

你問你應該專注於首先,熱升級還是分配?沒有什麼是非常強制的:-)但是在分佈式系統和熱代碼升級時使用目標系統和OTP將會幫助你很多。 –

+0

我必須同時做這兩件事。我的應用程序已經根據OTP規則進行了結構化,但我的行爲過程(服務器,fsm,主管)都是本地的。我想使用版本可以做熱升級的工作。關於分發,我還沒有找到任何關於如何創建以及爲每個節點放置配置文件的適當示例。一些指導方針,也許關於如何實現這兩個事情的順序將非常有幫助。感謝你的時間亞當。 – ar3tzu

回答

2

我從來沒有嘗試過,但文檔似乎指向: Erlang Release Handling(11.3分佈式系統)。

這顯示sync_nodes命令一個非常短款,我建議你閱讀全篇,因爲我注意到,常常併發和分佈的概念是如此persavive在二郎山,像你的問題已經得到解決,包括在OTP 。

BTW,二郎神用戶指南也有專門爲Distributed Applications這似乎與分佈式應用程序的配置選項整整一章,我認爲,這兩個應該做的伎倆。

希望這會有所幫助,如果您需要更多的幫助,只需要問問!