我在 CouchDB 的 _changes
上遇到了性能不佳的问题当有多个观察者时馈送。
我在笔记本电脑上的虚拟机中运行 CouchDB,多个 iOS 客户端正在使用 _changes?feed=continuous
在网络上的数据库之一上,使用 CouchDB 的 HTTP API。随着客户端数量的增加,更改的速度会减慢到爬行速度。
注意我实际上是通过压缩响应的 Apache 反向代理与 CouchDB 通信的。
而且我还注意到,在对提要应用过滤器时,它通常会持续很长时间而不对 HTTP 流进行任何更改。几乎就像我在等待它检查一批不符合我的过滤器的文档一样。
有什么我可以启用或优化的设置可以帮助加快这一切吗?
最佳答案
当您意识到每次更改 couchdb 都要求查询服务器评估 filter() 函数时,延迟随着过滤的 _changes 提要的消费者数量的增加而增加也就不足为奇了。显然它不缓存结果,所以它必须为每个消费者执行这个操作。
您可以尝试删除过滤器参数并使用 include_docs=true 代替。这样,提要生产者就不必要求 View 服务器评估更改。这应该使它更具响应性。当然,这会显着增加提要中传输的数据量,并且您必须在客户端复制 filter() 函数逻辑。它并不理想,但我认为值得一试。
关于couchdb - 在应用过滤器时提高 CouchDB 的 _changes 提要的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19165078/