nodejs 为什么对关系型数据库支持不好? nodejs 为什么不适合 CPU 密集型应用? 您所在的位置:网站首页 nodejs用什么数据库好 nodejs 为什么对关系型数据库支持不好? nodejs 为什么不适合 CPU 密集型应用?

nodejs 为什么对关系型数据库支持不好? nodejs 为什么不适合 CPU 密集型应用?

2024-03-09 12:45| 来源: 网络整理| 查看: 265

这两个问题如果从字面上理解的话,其前提都是假命题。

Node.js 在哪些方面对于哪些关系型数据库支持不好?数据库驱动其实只需要实现 Socket 通信、实现特有通信协议、发送指令( SQL 字符串)、反序列化返回结果就可以了,Node.js 一开始就支持 Socket 通信(net 模块),通信协议是纯逻辑的只要是图灵完备语言都能实现,字符串任何编程语言都支持,反序列化完全就是按照本身语言特性来设计的。现在主流数据库 Node.js 都有对应的驱动包,有的甚至是数据库官方提供的。

如何定义“CPU 密集型”?如果指的是多线程多进程的话,那 Node 完全没问题;但如果单纯看执行效率的话,没啥语言能比得过汇编、C 、C++、Rust 等编译型系统开发语言吧( Java 的性能也并不比 Node 好多少( https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html),跟系统开发语言来比仍然有很大距离)。而且因为 Node.js 内的 V8 是支持 WebAssembly 的,以及 Node 自己支持 N-API,核心对计算性能要求较高的模块(一般要求高性能的部分都是很少的一部分)可以用 C/C++、Rust 来实现,然后由 Node.js 调用,早年做区块链的很多公司就是这么搞的。

如果捋一遍目前最新版的 Node 的文档,可以发现现在 Node 能干以前干不了的很多事了。

我觉得前端干后端的活的问题从来不是工具、语言、引擎、框架的问题,而是后端架构思想、中间件、DevOps 、SRE 方面知识不足的问题,现在没有任何一个成规模的系统是只用一门语言就可以做得很好的,多种语言、多种中间件、多种架构思想各自发挥各自的优势才能让整体系统处于最佳状态(同时降成本降到最低)。

想说明老板,可以让老板提出几个指标(比如硬件资源、并发量、相应速度、开发周期等指标),然后你再去调研 Node.js 现阶段是否能让你们实现这些指标,能的话就直接用 Node.js 试试,用数据来说话。或者让老板把担忧说明白一些,然后你可以做一些 Demo 来证明他可以不用担忧。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有