|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Node.js
什么是 Node.js?
Node.js 是一个跨平台、开源运行时环境和框架,用于在客户端浏览器之外执行 Web 应用程序。
它是一种服务器端编程语言,主要用于事件驱动的服务器,例如标准网站和后端 API 服务,尽管创建它的目的是开发实时的、基于推送的架构。每个浏览器都有自己的 JS 引擎,node.js 就是其中之一。 Google Chrome 中的 V8 JavaScript 引擎用于为 Node.js 提供支持。是不是有点复杂?
从根本上来说,这意味着整个站点可以在单个“堆栈”上运行,从而使您能够专注于实现项目的业务目标,而不是开发和维护。
由于 Node.js 是开源的,因此可以免费使用,并且由全球开发者社区不断更新和增强。
关于 Node.js 需要掌握的一个关键点是,它实际上既不是传统应用程序软件的框架也不是库,而是一个运行时环境。
运行时环境(也称为 RTE)是开发人员可用来创建代码的 Web API 以及解析该代码的 JavaScript 引擎的集合。这使得它变得轻便、多功能且易于部署,所有这些都将有助于优化和加速您的应用程序项目。
Node.js 基本架构
Node.js 的架构使其在程序员中非常受欢迎。与大多数其他使用多线程处理模型的运行时环境不同,Node.js 在单个线程中完成所有操作。
在多线程处理配置中,每个服务器都有一个可以访问的受限线程池。因此,每当服务器收到请求时,它都会从池中选择一个线程并将其分配给该请求来处理处理。在此场景中,处理是同步且顺序的,这意味着一次仅执行一个操作。
使用多线程处理时,将为每个请求选择一个线程,直到所有线程都用完为止。发生这种情况时,服务器必须等待现在太忙而无法再次可用的线程。这可能会导致应用程序运行缓慢且效率低下,从而产生从客户体验到潜在客户转化等一系列负面后果。如果您的程序必须处理大量并发客户端请求,那么问题尤其严重。
另一方面,Node.js 在单线程上工作。两者之间的区别在于,您可能期望单线程体系结构使用事件循环以非阻塞方式执行阻塞输入/输出活动。如果您不熟悉这些短语,请不要担心。
原则上,单线程设计可以比多线程配置更快、更有效地运行和增长。这正是 Ryan Dahl 在创建 Node.js 时所考虑的,也是它在 Web 应用程序开发人员中如此受欢迎的原因之一。
使用 Node.js 开发的应用程序示例
这里有一些更深入的案例研究,可以帮助您了解该技术的实际应用和商业应用。
Netflix
Netflix 是世界上最受欢迎的流媒体和视频点播服务。它是一个数据驱动的平台,采用广泛的 A/B 测试为其超过 1.95 亿全球订阅者提供丰富的体验。
每个推送周期发布的大量独特包加剧了条件依赖和应用程序可扩展性的困难。因此,该公司选择了轻量级且快速的 Node.js。最显着的成果之一是加载时间减少了 70%。
领英
当将移动应用后端从 Ruby on Rails 迁移到 Node.js 时,全球最大的商业和就业社交网站 LinkedIn 也信任 Node.js。
尽管当时它还是一个相当不成熟的运行环境,但事实证明这是一个明智的决定。新的应用程序比以前的应用程序快 2-10 倍,而且也很轻。此外,开发时间很短。
美国宇航局
是的,这是正确的。 NASA 也使用 Node.js。
该技术在该应用中比在其他应用中重要得多,因为它可以在危险的太空任务中保证宇航员的安全,从而挽救生命。
在因多个位置存储的数据效率低下而导致几乎致命的事故之后,NASA 面临着将与 EVA 宇航服相关的数据整合到单个云数据库中以最大限度地减少访问时间的任务。基于 Node.js 的新系统将流程中的步骤从 28 个减少到 7 个。
沃尔玛
沃尔玛是世界上最大的零售商,它正在进军互联网购物业务。尽管存在风险,该公司还是加入了使用 Node.js 的行列,这是一种相对较新且非常热门的技术。
在客户端,企业重新设计了移动应用程序以包含复杂的功能。沃尔玛称赞 Node.js 的异步 I/O 和单线程事件循环架构,这使其能够管理多个并发查询。
可信执行环境 (TEE)
可信执行环境 (TEE) 是主处理器内的安全区域,提供受保护的空间,敏感代码和数据可以在其中运行,而不必担心外界的篡改或观察。 |
人类钥匙
人类密钥是从您的身份、您的知识或您拥有的东西派生出来的加密密钥。它们用于保护数字资产、保护隐私和访问去中心化网络。 |
开放金融(OpenFi)
OpenFi是“开放金融”的缩写,是一个将传统金融(TradFi)与去中心化金融(DeFi)相结合的金融框架。 |
汇总即服务 (RaaS)
汇总即服务 (RaaS) 允许构建者快速构建和启动自己的汇总。 RaaS 提供商提供端到端解决方案,例如底层技术堆栈的定制、无代码管理以及与核心基础设施的一键定制集成。 |
数据可用性采样 (DAS)
数据可用性采样(DAS)是一种使去中心化应用程序能够验证块数据的可用性的方法,而不需要每个参与者下载整个数据集。 |
多种数据可用性 (MultiDA)
这一区块链架构使用多个数据可用性(DA)服务来确保数据冗余。 |