美文网首页后端资源精选
扛着锄头写代码之nodejs初识

扛着锄头写代码之nodejs初识

作者: 小马过河R | 来源:发表于2016-09-29 14:44 被阅读143次

引子

为了web app而看的nodejs,对于nodejs的单线程对高并发友好小小烟纠了下,分享,欢迎指正谬误。。。

都说单线程nodejs能减少I/O问题,淘宝team说它是一个平台而不是一种语言,它的单线程是指JS执行线程,实际的I/O操作都是多线程执行的。(题外话)

那开始入正题。

我们假设现在有两种餐厅的出餐模式:

apache模式,以下简称A模式。一共有三个点餐窗口,三位服务人员,三位厨师(请自行脑补画面,但是别乱想)。顾客在任一窗口点餐[所谓多线程],点完后服务员传达厨师,等待厨师出餐,服务员返给顾客[同步返回响应结果]。顾客本次购物结束。服务员进行下一位顾客的点餐[接收下一个请求]。

nodejs模式,以下简称N模式。一共只有一个点餐窗口一位服务员[单线程],一位厨师[CPU]。顾客在窗口点餐,点完后服务员传达厨师,厨师进行出餐,而服务员不必等待[不必等待当前请求返回结果],直接进行下一位顾客的点餐,然后继续传达下一个顾客的订单给厨师。厨师挨个完成后抛出给出餐窗口[异步返回响应结果],顾客到出餐窗口取餐,本次购物结束。

那么问题来了,假设餐厅做的是卤味(配酒的那种你懂的),此时同时来了四个顾客。A模式下有三位顾客可三个窗口同时点餐,另一位需等待或者说顾客觉得满载[无法接收请求]也下不了单直接走人去隔壁老王家了,厨师加热2分钟后出餐,平均每人等待2分钟。N模式下必须排队,但是可以无需等待,四位顾客都可先下单,第四位顾客的等待时间应该是八分钟之内,然后到出餐窗口取。这种模式下不仅能避免A模式下因两位顾客同时点了仅剩的一份鸡爪而产生的厨师对资源处理[数据处理]的矛盾问题而且能解决同时多人来下单下不了单的问题[高并发]。

问题又来了,假设我做的是莆田卤面生意,假设加工一份要10分钟(豪华版),如果同时来三位顾客,那A模式下每位顾客10分钟后可用餐,但是N模式下第三位要30分钟后才能用餐,表示不饿死也馋死了。这大概就是为什么需要CPU大量计算的不适合使用nodejs的一个说法吧。

应该说各有千秋吧,没有最好的只有最适合的(请注意,话题开始跑偏)。。??~~

                                  2016.9.29  

学习参考地址:

http://taobaofed.org/blog/2015/10/29/deep-into-node-1/

相关文章

  • 扛着锄头写代码之nodejs初识

    引子 为了web app而看的nodejs,对于nodejs的单线程对高并发友好小小烟纠了下,分享,欢迎指正谬误。...

  • 扛着锄头写代码之vuejs和nodejs搞起web app系列

    上次为了vue.js实现web app看的nodejs,首先感谢上次各位大神对nodejs初识不足的指点。本次烟纠...

  • 扛着锄头写代码之微信小程序通俗地讲

    前段时间关注的微信小程序(应用号)那旮旯现在已经公测了一段时间了,来通俗聊一聊这个新玩意。。。 首先来考虑下三个,...

  • 耕者有其田,一亩三分地。

    “哈哈,这次鸡蛋饼真的没得了!”扛着锄头的大胖子走在前面说到。 “啥?你说哈?”扛着锄头的小胖子跟在后面。 “耕者...

  • 【城市老农】01、扛着锄头回城

    1972年国庆节回城探亲,听到一个好消息,城里正在安排招工,主要对象是上山下乡的知青。而且我榜上有名,拟安排到地区...

  • 初识Nodejs

    初识Nodejs NodeJs官网 什么是Nodejs Node.js® is a JavaScript runt...

  • nodejs通过钉钉群机器人推送消息

    nodejs 通过钉钉群机器人推送消息 Intro 最近在用 nodejs 写爬虫,之前的 nodejs 爬虫代码...

  • 初识nodejs

    初识nodejs nodejs需会工具 nvm工具实现nodejs任意版本切换 npm下载nodejs所需模块 n...

  • 跟我一起学NodeJs之POST接口处理

    NodeJs异步读取文件 前面我们介绍了使用NodeJS来写GET请求代码,那么接下来我们将写POST请求代码 在...

  • 挖金子

    老张扛着锄头往田地里走去,快到地头的时候遇上匆匆跑过去的老王,不一会儿又看见刘婶子也扛着锄头从自家地头往东头张富贵...

网友评论

    本文标题:扛着锄头写代码之nodejs初识

    本文链接:https://www.haomeiwen.com/subject/elakyttx.html