• 揭开NodeJS的神秘面纱!


    一、NodeJS是什么?

    Node是一个服务器端JavaScript解释器
    Node.js是一套用来编写高性能网络服务器的JavaScript包。

    二、Node的目标是什么?

    Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。

    我们来做个数学题。在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。
    在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。
    随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。

     

    Node 解决这个问题的方法是:更改连接到服务器的方式。
    每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。
    Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。

    三、Node如何工作?

    Node 本身运行 V8 JavaScript。

    事件驱动编程

    实际上,服务器端和客户端没有任何区别。没错,这没有按钮点击操作,也没有向文本字段键入的操作,但在一个更高的层面上,事件正在 发生。
    一个连接被建立,这是一个事件!数据通过连接进行接收,这也是一个事件!数据通过连接停止,这还是一个事件!

    为什么这种设置类型对 Node 很理想?JavaScript 是一种很棒的事件驱动编程语言,因为它允许使用匿名函数和闭包,更重要的是,任何写过代码的人都熟悉它的语法。事件发生时调用的回调函数可以在捕获事件处进行编写。这样可以使代码容易编写和维护,没有复杂的面向对象框架,没有接口,没有过度设计的可能性。
    只需监听事件,编写一个回调函数,其他事情都可以交给系统处理!

  • 相关阅读:
    2020 Java开发者数据分析:中国已成为 Java 第一大国
    居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
    Serverless 初体验:快速开发与部署一个Hello World(Java版)
    聊聊算法——回文字符串
    Redis Lua脚本完全入门
    Mock测试你的Spring MVC接口
    HTTPS证书知识扫盲
    Java中类型判断的几种方式
    山寨一个Spring的@Component注解
    如何自动填充SQL语句中的公共字段
  • 原文地址:https://www.cnblogs.com/JChen666/p/3372876.html
Copyright © 2020-2023  润新知