我不应该使用couchdb进行消息传递或实时活动流的任何原因?

Up.*_*Up. 7 messaging couchdb xmpp real-time amqp

虽然使用ampq或xmpp(rabbitmq或ejabbered,可能有couchdb作为后端)似乎非常适合在社交游戏平台上提供关于朋友状态的实时更新,其中更新很小但频繁,我不禁想到为什么不会榻榻米是一个提供此类更新的好平台吗?

我能想到的主要优势是能够根据朋友和更改api的可用性来过滤更新,这使得开发这样的应用程序并管理它(包括复制)相比,与ampq或xmpp相比,你必须考虑如何管理pubsub节点以及在任何时间点订阅它们的人.

但是,我不禁想到这太好了,我无法找到有关couchdb缺点的信息.不知何故,感觉就像使用MySQL进行消息传递一样,这就是为什么我对使用它犹豫不决.

任何人都有使用couchdb这样的应用程序的经验?你会推荐另一个平台吗?

mik*_*eal 6

以下是"小而频繁"更新和CouchDB的一些问题.

CouchDB拥有出色的MVCC系统,可用于文档更新.每次更新都会更改修订版,如果不传递您要更新的修订版,则无法更新文档.这也意味着,如果您有多个客户端频繁地更新同一文档,则此功能将受到妨碍,因为即使使用更改源,更新后也会出现小的网络延迟.

使用过滤更改可能遇到的另一个问题是过滤器函数获取请求对象,这意味着它是对每个文档乘以连接数的视图服务器的单独调用.您可能希望使用node.js或erlang服务器来实现"通道"方法来更改过滤并使其位于单个未过滤的更改源上.

总而言之,如果您没有多个客户端尝试以高频率更新相同的文档,并且您没有在具有高数据库的大量并发客户端上使用更改过滤器,那么您想要做的将会很好地工作更新频率.除此之外,它会很棒.@jchris只使用裸改变源已经完成了大量的实时应用程序,它们运行良好.