从Node.js SDK向Couchbase的并行数据库请求

Meta_Is_Betta

我希望在短时间内(例如半毫秒内)向Couchbase存储触发一些Get请求。

我不能使用multiGet,因为我没有同时拥有所有键。

但是,如果我很快又触发了几个单独的get请求,我相信它们会一次处理一个请求,如此处http://docs.couchbase.com/couchbase-devguide-2.5/index.html#retrieving-多键

我可能可以做的一件事是使用在启动时为每个Get请求创建的单独的Connection对象,但是我没有在任何地方看到推荐的最佳实践。

这项工作是否可以使我快速并行执行Get,这是推荐做的事情吗?

法里德·诺里·内沙特

我不建议不要建立单独的连接。它只会增加数据库的额外负载。您可以为其他数据库添加连接,但不能为同一数据库添加连接。

您有两种选择:

  1. 只要您知道许多按键,就可以发出多个请求。如您所说,这可能无法很好地扩展。我建议您尝试一下并对其进行测试,以查看其进展,因为它最容易实现。如果符合要求,则使用它。幸运的是,Node.js中的请求实际上是异步的,因此它们实际上是并行执行的,并且文档重点是非异步编程语言,因此可能还不错。但是数据库将不得不做额外的工作。使用此解决方案,您可能具有最短的延迟来获取单个键值。

  2. 如果所有键的到达时间都短于半毫秒(这确实是很短的时间!),只需等待它们全部发出并发出批量请求即可。确保您的半毫秒在重负载下不会变成200毫秒!如果总是那么短,那么这将是一个更好的解决方案。

  3. 排队并使用混合方法。如果以上建议在所有情况下均不能很好地起作用,则可以尝试以下操作:每当需要钥匙时,请按入队列。按时间间隔检查队列,并同时获取队列中的键并清除队列。时间间隔可以是5毫秒或10毫秒甚至更长。取决于按键来的速度以及您需要它们的速度。您已经在不同的设置下以高负载测试了该解决方案,以使其很好地调整。这样,您可以获得单个键值的结果的等待时间会很短,并且不会对数据库造成额外的负担。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase管理员SDK(node.js)数据库请求冻结

来自分类Dev

带有Couchbase数据库的无效ELF标头Node js

来自分类Dev

Node.js - 在返回响应之前不运行数据库承诺

来自分类Dev

在Node.js中使用Jquery Ajax请求从数据库中删除

来自分类Dev

防止在长数据库请求时Node.js超时

来自分类Dev

NODE JS取消请求

来自分类Dev

Node js - 返回从数据库读取的数据数组的函数

来自分类Dev

使用node.js和angular更新数据库

来自分类Dev

预填充数据库-Node.js + MongoDB

来自分类Dev

如何关闭node.js中的数据库连接?

来自分类Dev

Node.js的嵌入式文档数据库

来自分类Dev

在node.js中测试后清理数据库

来自分类Dev

Node.JS和同步数据库查询

来自分类Dev

使用mongodb创建数据库node.js

来自分类Dev

Mac:Node JS Mongo数据库错误:连接被拒绝

来自分类Dev

node.js-监听数据库更改并更新它们

来自分类Dev

Node.js使用mssql访问数据库

来自分类Dev

Node.js Api,无法从数据库中删除

来自分类Dev

使用Node.js读取SQLite数据库

来自分类Dev

使用node.js设置MongoDB数据库连接

来自分类Dev

Node.js的嵌入式文档数据库

来自分类Dev

哪个数据库与Node.js最兼容?

来自分类Dev

预填充数据库-Node.js + MongoDB

来自分类Dev

如何在Node.js中使用数据库?

来自分类Dev

在node.js中测试后清理数据库

来自分类Dev

在Node.js中处理异步数据库

来自分类Dev

使用node.js和angular更新数据库

来自分类Dev

Node.js在本地存储远程数据库(同步)

来自分类Dev

在Node.js测试之后清理数据库