繁体   English   中英

node.js 可以进行多少并发数据库查询?

[英]How many concurrent database queries can node.js make?

我听说 node.js 在执行 IO 任务(例如查询数据库)时速度很快,并且因为 javascript 是单线程并使用事件循环,因此与使用单独的数据库相比,它使用的资源要少得多。 但这是否意味着它可以进行的最大并发查询数仍然受到特定数据库可以处理的并发连接数的限制? 如果是这样的话,node.js 与 vert.x 相比有什么优势,vert.x 可以使用多个事件循环而不仅仅是一个。

由于 node.js 12 (自 node.js 10 起作为“实验功能”可用),您可以使用工作线程,就像您可能已经使用带有vert.x的工作线程一样。 您还拥有节点或集群模式子进程

无论哪种方式(vert.x 或节点),您都需要牢记黄金法则,即“不要阻塞事件循环或工作池”,并根据您的容量考虑线程池的大小。

我认为让您处理单线程并将其扩展为新的和完全隔离的实例通常会更好,这些实例可以托管在您的基础架构中的多个位置甚至在同一个位置(例如使用 docker/kubernetes/whatever 甚至使用systemd ) . 并根据请求的增加、基础架构的扩展能力以及数据库可以处理的连接池的大小动态执行扩展。

当您将应用程序设计为反应式或事件驱动的应用程序(使用 node 或 vert.x 的正确方法)和无状态应用程序时,以这种方式处理缩放会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM