|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
是的,这是正确的。 NASA 也使用 Node.js。
该技术在此应用中比在其他应用中重要得多,因为它可以在危险的太空任务中保证宇航员的安全,从而挽救生命。
以下由于存储在多个位置的数据效率低下而导致了一场几乎致命的事故,NASA 面临着将与 EVA 宇航服相关的数据整合到单个云数据库中以最大限度地减少访问时间的任务。基于 Node.js 的新系统将流程中的步骤从 28 个减少到 7 个。
沃尔玛
沃尔玛是世界上最大的零售商,它正在使其进军网络购物业务。尽管存在风险,该公司还是搭上了使用 Node.js 的潮流,这是一种相对较新且非常热门的技术。
在客户端,该公司重新设计了移动应用程序,以包含复杂的内容功能。沃尔玛称赞 Node.js 的异步 I/O 和单线程事件循环架构,这使其能够管理多个并发查询。
瓶颈
瓶颈是指容量受到限制、造成拥塞并降低整体性能的点。 |
zk甲骨文
zkOracles 利用零知识证明 (ZKP) 作为一种无需信任的媒介,数据可以通过该媒介自由传递,同时保留强大的安全性、隐私性和成本效率标准。 |
抽象可扩展性
抽象可扩展性是系统整体能力的扩展,允许编程组件在新的开发环境中用作构建块。 |
Solana 虚拟机 (SVM)
Solana 虚拟机 (SVM) 是支持 Solana 每秒处理数千个事务的系统。 |
可编程隐私
可编程隐私重新定义了去中心化应用程序 (dApp) 中的数据保护,提供了一个灵活的概念,使用户和开发人员能够个性化隐私设置。 |
简单账本协议 (SLP)
简单账本协议(SLP)是一种在比特币现金之上运行的代币系统。它允许用户创建自己的代币来代表他们梦想的任何东西。 |