2013-03-12 110 views
2

我正在研究流星應用程序,而我害怕的一件事是沒有人知道如何在多臺機器上運行一次。amazon是否剛剛發佈多服務器問題的解決方案

亞馬遜剛剛宣佈:http://aws.amazon.com/about-aws/whats-new/2013/03/11/announcing-aws-elastic-beanstalk-for-node-js/

這會解決這個問題,通過提供實質上無限大小的機器?或者我完全誤解AWS?或者擔心這一點是可笑的,因爲沒有流星應用會使用超過30GB的RAM?

對不起,對初學者的問題。

+0

你的意思是水平縮放的解決方案嗎? – Akshat 2013-03-12 09:51:09

+0

@Akshat我讀過,沒有辦法在多臺服務器上放置基本的流星應用程序。我想知道這是否能夠通過提供始終如此大的服務器來解決這個問題。 – user1624005 2013-03-12 16:22:17

+0

我對這個用例有點困惑,你的意思是在多臺服務器(水平縮放)上爲流量很高的站點使用流星,爲此我知道開發團隊正在努力在ddp代理上尋求幫助或者相同的應用程序託管在多個服務器上的單個站點/每個不同的數據? – Akshat 2013-03-12 16:28:15

回答

4

亞馬遜魔豆使用預定義模板CloudFormations一些預配置的AMI的一起讓您輕鬆部署應用程序。不同的風格,這個新的節點之一是其中之一,是預先配置的技術堆棧使用。

模板,因爲它們不解決流星水平縮放。也就是說,要在多臺機器上運行流星。爲此,您需要讓流星堅持其WebSocket狀態,以便集羣中的其他服務器可以共享它。

Amazon Elastic Load Balancers(ELB)允許TCP流量,這是擴展WebSocket流量所需的。 ELB還支持Session Affinity或Sticky Sessions(這麼多名字)。然而這還不夠。想象一下,我登錄到一臺服務器,然後我就呆在那裏。然後,您登錄到另一臺服務器並停留在那裏。現在我們有兩臺不同的服務器,分別與我們對話。但是,如果這些服務器共享WebSocket狀態。

可以使用SocketIO + Redis一起使用RedisStore執行此操作,但目前流星中不支持此功能。我希望他們最終能夠支持這一點,因爲這對於可行的生產準備產品是必要的 - 除非他們想出了一些其他的魔法來實現相同的目標。

由於服務器有時會死亡,尤其是在虛擬化環境中,您有必要擔心這一點。集羣不僅僅關注性能,還關乎高可用性。

1

我想modulus.io可能會因爲他們的「會話親和力」的功能效果最好

「我們的負載均衡保證當用戶打了伺服,他們被送回同伺服的所有後續活動。這將減少通過允許內存狀態信息來實現應用程序的複雜性。「

但是,我並沒有真正嘗試在那裏部署流星應用程序。

他們也有一個博客post特別是約流星

相關問題