2012-04-22 17 views
0

注意:此問題嚴重受到我構建的Web應用程序的主要要求的嚴重影響:高可用性和容錯。所有其他要求(如可擴展性和用戶數量)在這裏都沒有問題。在Web應用程序中使用Erlang Web服務器的優點

我從這個社區的成員之一獲得了advice,並使用Erlang網絡服務器作爲我的Web應用程序的後端。

建議我可以使用類似Mochiweb的後端和Django/Ruby on Rails作爲使用JSON和麪向服務模型的前端。

我可以理解的這種方法的唯一明顯優勢是前端部分的開發是'照常' - 定期MVC的東西,Ruby on Rails或任何其他常見框架的人選擇。

但是其他優點呢?他們真的存在嗎?當然,Erlang/OTP爲有問題的系統增加了容錯功能,但是不添加Web前端層會將此容錯級別降低到更低的級別?

難道我們不通過將Ruby on Rails與Mochiweb耦合來引入'單點故障'嗎?當然,Mochiweb可以處理錯誤,但是如果前端發生了什麼錯誤呢?

回答

1

從技術上講,Erlang/OTP平臺本身並沒有對容錯和高可用性做任何事情。它只是允許輕鬆實現併發和分佈式軟件。在單臺機器上運行的Erlang Web服務器可能會像所有其他服務器一樣發生故障 - 只是因爲硬件發生故障。

因此,對於HA站點而言,對於硬件和軟件故障情況而言,具有適當的冗餘和回退方案更重要,而不是使用任何特定的軟件堆棧或平臺。與其他平臺相比,在Erlang中實現它可能會稍微容易一些(當然,如果您熟悉它的話),但使用純Ruby/Python/Java/C或幾乎任何其他平臺都可以獲得相同的結果。

1

網絡行業有很多設置容錯前端的經驗。這只是設置多個Web計算機(通常是輕量級反向代理)以及某種HA管理器(內置於許多負載平衡解決方案中)的問題。後端通常是較難的部分。

0

如果後端是其他技術,我不會使用Erlang作爲前端Web服務器。

Erlang作爲Web服務器的許多好處都來自於後端也在使用Erlang。其中最大的是I/O成本較低。當您的前端和後端完全獨立的軟件堆棧時,您將失去這種優勢。

如果你打算在Rails上構建一些東西,你可以使用一些你可以在前端獲得更多幫助的東西,比如nginx。

相關問題