离线Web应用程序设计推荐

Sli*_*aya 6 offline ruby-on-rails rabbitmq

我想知道在这种情况下采用哪种最佳架构:

  1. 我有很多商店连接到使用Ruby on Rails开发的Web应用程序.
  2. 互联网无法一直到达
  3. 解决方案是开发一个离线系统,需要安装远程数据库的本地副本.

这一切都已经发展完了.现在我想做什么:

  • 始终在数据库的本地副本上工作.
  • 本地数据库上的任何更改都应与远程数据库同步.
  • 所有本地副本应在其他本地副本中具有相同的数据.

为了解决这个问题,我考虑使用JMS之类的软件,最终使用Rabbit MQ.这包括将任何sql请求推送到将在应用程序的远程实例上执行的JMS队列,该JMS队列将插入到远程DB中并将插入或SQL语句推送到将由所有本地实例读取的另一个队列中.这似乎很复杂,应该减慢应用程序.

是否有必须应用的设计或建议来解决此类问题?

Pan*_*kos 1

我建议看看CouchDB。它是一个非 SQL 数据库,可以自动执行您所描述的操作。它尤其适用于通常没有互联网或数据连接的电话应用程序。这个想法是您拥有 CouchDB 数据库的本地副本和一个或多个远程 CouchDB 数据库。然后,CouchDB 服务器负责分布式系统的复制,并且您始终使用本地数据库。这种方法很好,因为您不必构建自己的分布式复制引擎。有关更多详细信息,我将查看其文档的“分布式更新和复制”部分。