我的 Rails 应用程序主要在常规 mySQL 数据库上运行,但是,如果该数据库出现故障,我希望 Rails 应用程序故障转移到 MongoDB 数据库,该数据库基本上只是主数据库的“缓存”版本。
我的一些想法是两个模型(AR 和 MongoDB - 使用 Mongoid),然后在控制器中捕获异常并在主节点失败时使用 MongoDB 模型,但我觉得如果有两个模型来处理所有事情,那就太混乱了。另一个想法是(我还没有测试过)拯救模型中的数据库连接异常并将模型用作 MongoDB 模型,但考虑一下,如果模型最初继承自 ActiveRecord::Base 可能会出现问题。
解决这个问题的好方法是什么?