Java编程语言自诞生以来已有将近30年的历史,该语言及其字节码已经广泛应用在从嵌入式芯片到大型服务器群的所有领域。Java结合了坚不可摧的虚拟机和大量的库,为编写随处运行的代码提供了一个肥沃的生态系统。
然而,Java一直在努力的一个领域是服务器领域,它通常必须处理来自数千甚至数百万个用户的连接。早些年,Java工具是创建为所有用户强制执行业务逻辑的服务器端应用程序的最佳工具之一。J2EE、Hibernate、Spring等Java框架和基本的Javaservlet模型使得创建强大的Web应用程序变得相对容易。
在JavaScript和Node.js出现之前,Java技术得以蓬勃发展。在Node.js引起广泛关注之后,开发人员开始迁移到JavaScript运行时环境。这里有两个原因:首先,开发人员欢迎在服务器和浏览器客户机上运行相同的代码。其次,Node.js服务器通常可以显著地提高吞吐量,这要归功于它们的响应式模型。
Java生态系统如今适应了竞争。一开始,一些开发人员采用了Google Web Toolkit等工具,该工具可以将Java转换为JavaScript。接下来,他们致力于提高服务器上的Java运行速度。而早期的服务器Java框架有一个限制:每个传入的请求都有自己的线程。这是一种组织传入和传出数据的干净方式,但也很费事。创建线程需要数千字节的开销,这可能会限制每台服务器可以处理的用户数量。Node.js使用了一个不同的模型,它允许在没有这种开销的情况下处理更多的用户。
最近,Java开发人员将Node.js的创新引入Java堆栈,尤其是云原生Java框架。这些框