ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Node服务器对比Java服务器

2022-06-30 10:04:36  阅读:220  来源: 互联网

标签:Node Java 服务员 js 服务器 客人 1000


Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)

Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。

当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。

这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。

Node.js 具有独特的优势,因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。

上面这是官网的介绍

下面来分析一下java服务器和nodejs服务器的优劣势,传统的web服务流程可以分为客户端<<--->>服务器<<-->>数据库,把客户端当成客人,把服务器当成餐厅的服务员,把数据库当成后厨

 

第一种情况:假如客人点餐都很快

java服务器,他的服务员是一对一服务的,不会去服务别人,假如餐厅有1000个服务员,正好来了1000位客人,会有1000个服务员(也就是1000个线程)来专门接待每一个客人,但是假如超过1000个客人,服务器就会崩,所以只能去增加餐厅的面积和服务员的数量,在真实情况中,就是需要正价服务器的容量,或者服务器矩阵和集群,就需要花很多钱。成本比较大,适合有资本的大厂

 

node服务器,他就只有一个服务员(也就是单线程)假如餐厅来了同时1000位客人,他会把第一个客人的菜告诉后厨,把第一个回调函数留在后厨,第二个、第三个。。。以此类推,他不需要在后厨等,要是菜做好了,厨师点一下回调他就很快会去拿菜。他可以继续给其他客人点菜,啥都不影响。回调天生适合处理高并发,所以配置低照样也没问题,成本低。

 

第二种情况:假如客人点餐都很慢(cpu密集型,大量复杂运算)

java服务器,他的服务员是一对一服务的,每个客人都需要5分钟才能点菜,就算来了同时1000个人,因为每个人都有自己对应的服务员,所以花费的时间相当于还是5分钟;不管有多少人,每个人的菜都能算的清清楚楚。这就是java的优势。

 

node服务器,因为只有一个服务员,假如有同时1000人,每个客人都需要5分钟才能点菜,那么就相当于在每个客人那都要花费5分钟,这个就是差别,所以node不适合cpu密集型,不太适合大量复杂运算的程序,这也是node的劣势

标签:Node,Java,服务员,js,服务器,客人,1000
来源: https://www.cnblogs.com/0722tian/p/16425752.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有