0

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

  • 主要目标是通过多台平板电脑(不超过 5 台)跟踪体育赛事
  • 为了独立于互联网访问,我将在比赛室设置一个本地服务器,该服务器将为平板电脑提供 webapp,并为大电视屏幕或投影仪显示的一些实时统计数据提供 webapp
  • 为了提供在线代码,我想将本地数据库复制到数据中心中的服务器,该服务器将使用 liveticker 托管网站并使用复制的数据库
  • 本地服务器将具有动态 IP,连接到可能无法配置端口转发的普通路由器,我想为互联网连接问题做好准备。所以我想将数据从本地推送到公共服务器是一个好主意,而不是像mysql主从复制那样反之亦然

经过一些研究,我偶然发现了 couchdb,因为它提供了复制功能,现在我已经了解了 couchdb 为整个应用程序提供服务的可能性。那么 couchdb 是否适合我的需求,还是有更好的解决方案?我可以从一个复制的 couchdb 数据库中处理不同的 web 应用程序(用于输入的平板电脑应用程序、本地实时统计数据和在线实时报价单)吗?

4

1 回答 1

1

在过去的一年里,我一直在使用 CouchDB、BigCouch 和 Couchbase 做很多工作,希望我的一些观点能有所帮助。

  1. 复制功能非常有效。这很容易启动,我一直对它的出色表现感到惊讶。过去,我对 SQL Server 中的复制感到头疼,所以我对它在 CouchDB 中的运行情况感到惊喜。

  2. 但是,如果复制是您唯一需要的,还有很多其他选择。CouchDB 工作在文档模型上,这与关系数据库非常不同。由于 CouchDB 不执行“连接”,因此您必须以非规范化的方式考虑您的应用程序。

  3. 由于 CouchDB 通过 HTTP 进行通信并从磁盘大量读取(为什么从 CouchDB 读取这么慢?(1.5MB/s 左右))。因此,如果速度是一个主要因素,我不确定我是否会选择 CouchDB。我要注意的一件事...我发现您可以使用 CouchDB 在 Erlang 中编写您的过滤器/视图,并且您会获得重大的性能改进。(我看到阅读量增加了大约 50%)。

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

  5. 查看 TouchDB。他们有 iOS 和 Android 版本,旨在在移动/平板设备上运行并支持复制。它现在还没有为 Android 做好生产准备,但对于 iOS 来说还不错。

总的来说,如果您想以 JSON 格式存储内容、需要文档数据库并希望按需复制,那么 Couch 非常适合。

于 2013-01-28T01:25:27.443 回答