在过去的五年中,随着专门为支持新的微服务而构建的技术的发展,该行业出现了爆炸式的发展。但这并不意味着它们最适合每个人的需要。事实上,与通常在考虑技术堆栈的情况下开发的Monolith不同,微服务体系结构中的每个服务都可以使用基于其自身功能的不同框架构建。我们将介绍一些最流行的构建微服务的java框架——传统框架和容器专用框架。
1.用于微服务的Jakarta EE/Java EE
经典的JavaEE(现在称为Jakarta EE(JEE))构建应用程序的方法是面向独石的。传统上,使用JavaEE构建的企业应用程序将打包到单个EAR(企业存档)部署单元中,其中包括WAR(Web存档)模块和JAR(Java存档)文件。
尽管没有任何技术限制排除在微服务体系结构中使用JEE的可能性,但存在着巨大的间接成本。每个服务都需要打包为一个独立的单元,这意味着它应该部署在自己的JEE服务器中。这可能意味着部署几十台甚至数百台应用服务器来支持典型的企业应用程序。
幸运的是,社区很早就注意到标准JEE没有解决微服务引入的新构建挑战。自2016年以来,许多额外的开源项目已经开始支持JEE中构建的微服务。
Eclipse Micropofile是一组基于JEE技术的不断增长的API。它是一个用于构建企业Java微服务的操作系统社区规范,由业内一些知名公司支持,包括Oracle、Red Hat和IBM。
2.Spring (Spring Boot 和 Spring Cloud)
Spring是构建Java应用程序最流行的框架之一,与Java/Jakarta EE一样,它也可以用于构建微服务。正如他们所说,“[微服务]在流程级别上做的事情,与Spring在组件级别上做的事情一样。”