0

所以我有一个 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) 这种方法看起来是否可扩展?

4

1 回答 1

1

我不确定我是否真的理解你的问题。通常在生产应用程序中,数据库层与应用程序层是分开的。我不能完全确定这是否与您有关,但这绝对是一块有趣的手表。http://vimeo.com/33263672。它讨论了在 rails 和 db 层之间使用 redis 层来促进排队,并创建零停机环境。似乎它比使用第二个导轨堆栈更好?我认为它应该看起来像这样;

|ELB| 网络服务器 |ELB| 应用服务器 |RRDNS| Redis 服务器 | PostGreSQL 服务器 |

如果我理解你的意思。如果没有,该视频链接仍然值得一看:)

于 2012-10-04T23:42:29.537 回答