gpt4 book ai didi

ruby-on-rails - 扩展 Ruby on Rails 站点

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:20 27 4
gpt4 key购买 nike

我正在开发 Ruby On Rails 应用程序,并希望在生产环境中进行部署。我有多个可以使用的相同配置的 Ubuntu Web 服务器,但我不知道如何跨多个主机扩展 RoR 应用程序和数据库数据。

我想在每个主机上同时放置一个网络服务器和一个数据库服务器。

在 Web 服务器/ruby 中间件方面,我希望 session 由在 Web 服务器/ruby 中间件层上执行负载平衡的主 Web 服务器控制。它应该将新 session 移交给免费主机。

我需要在 Web 服务器/ruby 中间件端实现负载平衡。 Web/中间件 session 应该是原子的(我对跨多个主机复制它们不感兴趣)

我希望将尚未保存到数据库中的事务数据记录到中间重做日志中——以便在发生故障恢复时重新运行。

在数据库层:

我想将任何一台主机上的数据库数据复制到另外两台主机。 (每个数据库集有3个数据库主机)

我不想在所有主机之间复制数据库数据,因为这会花费太长时间——延迟。

我想采用一种算法,将“创建”类型的请求定向到正确的数据库。我想到了负载平衡。

DB 主 Controller 应该知道哪个 3-DB 集合去处理“更新/读取/删除”请求。

我的测试 Web 服务器是 webrick,后端数据库是 Postgresql(尽管这与 RoR 无关紧要)。

我认为我需要将一个 sessionId 绑定(bind)到每个事务并保留一个重做日志以防我需要在失败后重新加载该 session 。

我可能会遇到哪些其他设计问题?另外,我应该使用什么网络服务器和数据库服务器来完成繁重的工作?主数据库和主 Web 服务器有哪些好的选择?

我知道这是一个跨越多个知识领域的复杂问题。我想知道我的要求是否可行。

最佳答案

在我上一份工作中,我们在以下基础架构方面运气不错:

1个负载均衡器-nginx

3 个应用服务器 - 瘦

2 个具有冗余写入的 mysql 服务器

2个备份盒

目前,我们有 4 个相当大的任务关键型应用程序在该环境中运行。我们有两个应用服务器来处理第 5 个应用。

如果您需要的不止于此,那么就投资返回率而言,heroku 可能是更好的选择。显然,即使对于较小的扩展问题,heroku 也是更好的选择,在上述计划中,您在系统管理员中会遇到噩梦。

关于ruby-on-rails - 扩展 Ruby on Rails 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com