我希望得到关于Rails 3应用程序体系结构的一些意见。Rails 3应用程序的体系结构想法
目前我们有一个Rails 3.0.7应用程序,允许用户通过我们连接的媒体设备管理在电视上显示的内容(促销,视频,菜单,体育统计等)。我们有超过1000个(和越来越多)这些连接的设备每分钟轮询我们的系统以检查其内容的变化,并且每15分钟报告其统计数据(例如,CPU,内存等)。
我们的系统的主要优势之一是,作为管理员,我们可以更改单个内容项的外观/工作方式,并将其分发到所有使用它的设备。此功能的缺点是当我们进行更改时,我们的系统暂时无法使用,因为所有连接的设备都会在同一时间要求更新。
因此,我们计划重新构建我们的应用程序,以便内容管理。系统在设备与应用程序通信时不受影响。有可能有几十种方法来解决这个问题。一种方法是建立一个单独的Rails应用程序,仅用于设备获取他们应该显示的内容,管理员可以监视等。它可以与当前内容管理共享模型,数据库等。系统。这种方式可能难以管理模型,迁移等。我显然不想复制模型。如果内容管理也是理想的。系统仍然可以显示帐户设备的状态,以便帐户管理员可以查看他们的设备是否在线等。
我在考虑某种类型的队列机制很适合像resque/redis,因为当更改在内容管理。系统,我们可以排队设备实例可以拿起并处理的作业。
我想抛弃这个问题给社区,以便从其他可能已经工作或仍在使用连接设备的系统工作的人那里获得意见和想法。预先感谢您的贡献。我很感激!
Louis
嗨亚历克斯,谢谢你的回应! 当我们的系统发生变化,影响所有连接的设备时,Web服务调用设备进行更新的CPU和数据库密集型。这就是说我认为我们需要分开数据库。考虑到读/写比率,我们认为主/从可以很好地工作。将它与两个应用程序(管理员和设备)结合在一起,在这两个应用程序中,两个应用程序分别从slave/master读取/写入,然后我期待更好的性能,更不用说改进的体系结构。 我没想过高速缓存代理服务器。这是一个有趣的想法。 – lgates 2012-04-06 14:02:24