我想爲比薩餅店提供一個容錯軟實時Web應用程序。它應該幫助披薩店接受客戶打來的電話,將它們作爲訂單放入系統(通過CRM網絡客戶端),並幫助調度員爲訂單分配送貨司機。用Erlang/OTP構建容錯軟實時Web應用程序
這些目標沒有什麼特別之處,但我希望能夠全天候提供服務,即使其具有容錯功能。此外,我想讓它工作得非常快,並且非常快速。
下面是這種應用程序的一個非常簡單的體系結構視圖。
的問題是,我不知道如何使用所有的Erlang/OTP善良,使應用程序非常敏感和容錯。
這裏是我的問題:
- 哪個系統要素應以提供容錯和我應該怎麼做,被複制?我知道我可以將每輛車的狀態(座標,分配的訂單等)存儲在Mnesia複製數據庫中。這是一條正確的路嗎?
- 哪些數據存儲服務應該是傳統的基於SQL的(例如基於boss_db),哪些數據存儲服務應該在Mnesia上完成以提供非常快速的響應?使用傳統的SQL數據庫來存儲客戶記錄和歷史記錄在一個容錯和高度響應的應用程序中是否可行?
- 我是否應該嘗試將所有服務(客戶,車輛狀態等)的所有數據存儲在RAM中,以便使應用程序具有高度響應性?
- 我應該在常規SQL數據庫中存儲持久車輛數據(id,容量等),並將實時數據(座標,分配的訂單,訂單等)存儲在Mnesia數據庫中該應用程序更實時響應?
如果您沒有複製您的所有應用程序邏輯和數據,您將如何在24小時內全天候提供服務。數據庫服務器故障;) – 2012-08-03 11:55:49
您能否提供一個關於如何在具有2+節點處理邏輯的Erlang/OTP系統中複製數據的參考? – skanatek 2012-08-07 07:43:59
進程組,發送給所有的衝突解決方案或僅使用riak/couchdb。或者你看看mnesia。但是,通過你自己來做這件事將是一件非常艱鉅的任務。 – 2012-08-07 12:05:56