CouchDB是此应用程序的正确解决方案吗?

CouchDB是此应用程序的正确解决方案吗?,couchdb,Couchdb,我目前正在评估以下应用程序的正确解决方案: 主要目标是通过多台平板电脑(不超过5台)跟踪体育赛事 为了独立于互联网接入,我将在比赛室设置一个本地服务器,为平板电脑提供网络应用程序,并为大电视屏幕或投影仪显示的一些实时统计数据提供网络应用程序 为了提供在线ticker,我想将本地数据库复制到数据中心的服务器上,该服务器将使用liveticker托管网站,并使用复制的数据库 本地服务器将有一个动态ip,连接到一个公共路由器,可能无法配置端口转发,我想为internet连接问题做好准备。因此,我想最

我目前正在评估以下应用程序的正确解决方案:

  • 主要目标是通过多台平板电脑(不超过5台)跟踪体育赛事
  • 为了独立于互联网接入,我将在比赛室设置一个本地服务器,为平板电脑提供网络应用程序,并为大电视屏幕或投影仪显示的一些实时统计数据提供网络应用程序
  • 为了提供在线ticker,我想将本地数据库复制到数据中心的服务器上,该服务器将使用liveticker托管网站,并使用复制的数据库
  • 本地服务器将有一个动态ip,连接到一个公共路由器,可能无法配置端口转发,我想为internet连接问题做好准备。因此,我想最好将数据从本地推送到公共服务器,而不是像mysql主从复制那样从本地推送到公共服务器
经过一些研究,我偶然发现了couchdb,因为它提供了复制功能,现在我已经了解了couchdb为整个应用提供服务的可能性。那么couchdb是适合我的需要还是有更好的解决方案?
我能从一个复制的couchdb数据库中处理不同的网络应用程序(用于输入的平板电脑应用程序、本地实时统计数据和在线实时行情器)吗?

过去一年,我一直在couchdb、BigCoach和Couchbase方面做大量工作,希望我的一些观点能有所帮助

  • 复制功能运行得非常好。这很容易开始,我总是惊讶于它做得多么好。过去,我对SQL Server中的复制有很多头疼的地方,所以我对它在CouchDB中的工作情况感到惊喜

  • 但是,如果复制是您唯一需要的,那么还有很多其他选择。CouchDB使用文档模型,这与关系数据库非常不同。您必须以非规范化的方式考虑您的应用程序,因为CouchDB不进行“连接”

  • 因为CouchDB通过HTTP进行通信并大量读取磁盘()。所以,如果速度是一个主要因素,我不确定我会选择CouchDB。有一件事我会注意到。。。我发现,您可以使用CouchDB在Erlang中编写过滤器/视图,从而获得重大的性能改进。(我看到阅读量增加了大约50%)

  • 在BigCoach和Couchbase中,使用动态IP可能具有挑战性。当我第一次重新启动每种技术的集群时,它们都崩溃了。如果可能的话,可以通过使用主机名而不是IP来解决这个问题,并使用/etc/hosts文件编写一些脚本。CouchDB的一个优点是,它将所有配置信息存储在数据库中,因此我始终能够通过Futon查找它并进行所需的更改

  • 看看TouchDB。它们有iOS和Android版本,可以在移动/平板设备上运行,并支持复制。Android目前还没有完全做好生产准备,但对于iOS来说,这很好


  • 总的来说,我想说,如果您想用JSON存储东西,需要一个文档数据库,并且需要按需复制,coach是一个很好的选择

    决策投入不足。变量太多,无法以有意义的方式回答此问题。只要稍加设计,再加上一些混合的web服务(从本地到公共),我想任何数据库都可以工作。缺少哪些信息?请告诉我,我可以更具体一些。。我知道我的解决方案可以与其他数据库一起构建,但我会为此选择最好的;)因此,我希望从一个在生产中从事类似工作的人那里得到一些信息,并能告诉我可能存在的陷阱。。或者为什么couchDB不是一个好的/最好的选择