Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在EC2上扩展Rails应用程序。这条路对吗?_Ruby On Rails_Database_Amazon Ec2_Scalability_Decoupling - Fatal编程技术网

Ruby on rails 在EC2上扩展Rails应用程序。这条路对吗?

Ruby on rails 在EC2上扩展Rails应用程序。这条路对吗?,ruby-on-rails,database,amazon-ec2,scalability,decoupling,Ruby On Rails,Database,Amazon Ec2,Scalability,Decoupling,所以我有一个Rails应用程序。它目前作为前端和后端+数据库单独运行 我需要扩展它以拥有几个后端服务器 后端服务器正在运行Resque后台工作程序(由用户前端请求生成)。它还严重依赖回调 我正在计划以下设置: |front-end| --- |load-balancer (haproxy or AWS ELB)| --- Server 1 ---- Postgresql Database (+++ other DBs added via replication later if needed)

所以我有一个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保持连接(触发:后端提交回调后)。这是一个更好的主意吗

2) 我正在使用Postgresql,并打算在需要时切换到企业数据库。目前需要扩展不处理数据库的后端部分


3) 这种方法看起来可扩展吗?

我不确定我是否真的理解你的问题。通常在生产应用程序中,数据库层与应用程序层是分开的。我不太清楚这是不是属于你的,但这绝对是一块有趣的手表。它讨论了在rails和db层之间使用redis层以方便排队,并创建零停机环境。这似乎比使用第二个rails堆栈更好?我觉得应该是这样的,

|ELB | Web服务器| ELB |应用服务器| RRDNS | Redis服务器| PostGreSQL服务器|


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

为什么你认为你需要做的不仅仅是设置一些额外的后端服务器并将它们添加到负载平衡器中?