2012-10-04 43 views
0

所以我有一個Rails應用程序。它目前獨立運行,作爲前端和後端+數據庫。縮放EC2上的Rails應用程序。這是正確的方式嗎?

我需要擴展它以擁有多個後端服務器。

後臺服務器有Resque後臺工作人員運行(由用戶前端請求產生)。它也嚴重依賴回調。

我打算以下設置:

|front-end| --- |load-balancer (haproxy or AWS ELB)| --- Server 1 ---- Postgresql Database (+++ other DBs added via replication later if needed) 
                \___ Server 2 ---/ 
                    ++ (other servers added in the same fashion later) 

我對如何處理把數據庫中的一個單獨的機器上在這種情況下的關注。

1)我打算創建一個新的空的Rails應用程序,其架構與初始後端相同。讓它運行並通過HTTP接受更新/帖子並通過遠程SSH保持連接(觸發:後端的after_commit回調)。這是一個更好的主意嗎?

2)我正在使用Postgresql,並打算在需要時切換到企業數據庫。目前需要擴展處理數據庫的後端部分。

3)這種方法是否可以擴展?

+0

爲什麼你認爲你需要的不僅僅是設置一些額外的後端服務器,並將它們添加到負載均衡器? –

回答

1

我不確定我是否真的明白你的問題。通常在生產應用程序中,數據庫層與應用程序層是分開的。我無法確定這是否屬於你,但它絕對是一個有趣的手錶。 http://vimeo.com/33263672。它討論在rails和db層之間使用redis層來促進排隊,並創建零宕機環境。這似乎是比使用第二個軌道堆棧更好的解決方案?我認爲它應該看起來像這樣;

| ELB | Web服務器| ELB |應用程序服務器| RRDNS | Redis服務器| PostGreSQL服務器|

如果我理解你的意思。如果沒有,該視頻鏈接仍值得一看:)

相關問題