专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 支持Java微服务的框架有哪些

支持Java微服务的框架有哪些

更新时间:2022-04-18 10:54:14 来源:动力节点 浏览1222次

支持Java微服务的框架有哪些?动力节点小编来告诉大家。

最主流的java微服务框架有哪些

1. 用于微服务的 Jakarta EE / Java EE

经典的 Java EE,现在是 Jakarta EE (JEE),用于构建应用程序的方法是面向单体应用的。传统上,使用 Java EE 构建的企业应用程序将被打包到单个 EAR(企业存档)部署单元中,其中包括 WAR(Web 存档)模块和 JAR(Java 存档)文件。

尽管没有任何技术限制排除将 JEE 用于微服务架构,但存在大量开销成本。每个服务都需要打包为一个独立的单元,这意味着它应该部署在自己的单独 JEE 服务器中。这可能意味着部署数十甚至数百个应用程序服务器来支持典型的企业应用程序。

幸运的是,社区很早就注意到标准 JEE 并没有解决微服务引入的新构建挑战。自 2016 年以来,已经启动了许多额外的开源项目来支持在 JEE 中构建的微服务。

Eclipse MicroProfile是一组不断增长的基于 JEE 技术的 API。它是用于构建企业 Java 微服务的操作系统社区规范,得到了业内一些知名人士的支持,包括甲骨文、红帽和 IBM。

底线:没有理由不能将 Java EE 用于微服务,但它没有解决运行多个个性化服务的操作方面的问题。对于那些想要将现有的单体 JEE 应用程序迁移到微服务的人来说,有很多基于 JEE 技术的“附加”工具可以满足您的需求。

2. Spring(Spring Boot 和 Spring Cloud)

Spring 是用于构建 Java 应用程序的最流行的框架之一,并且与 Java/Jakarta EE 一样,它也可用于构建微服务。正如他们所说,“[微服务]在流程级别执行 Spring 一直在组件级别执行的操作。”

尽管如此,在 Spring 框架上启动并运行具有微服务架构的应用程序并不是最直接的过程……您需要使用 Spring Cloud(大量利用 Spring Boot)、几个 Netflix OSS 项目,最后还有一些 Spring “配置魔法”。

底线:Spring 非常适合微服务的开发,以及围绕运营角度的外部开源项目提供的产品。但这并不意味着它会很容易。

3. Lagom

Lightbend 为我们提供了另一种选择。继续使用相同的主题,Lagom 使用 Play 和 Akka 围绕 Lightbend 堆栈进行封装,以提供一种更简单的方式来构建微服务。他们的重点不仅是为那些转向微服务的人提供一个简单的解决方案,而且要确保这些微服务易于扩展和反应。

Lightbend 的首席技术官兼联合创始人 Jonas Bonér 在 2015 年接受InfoQ 采访时说:

“大多数微服务框架都专注于让构建单个微服务变得容易——这是最容易的部分。Lagom 将其扩展到微服务系统、大型系统——这是困难的部分,因为在这里我们面临着分布式系统的复杂性。”

底线:Lagom 采用 Lightbend 的功能并在一个框架中利用它们,该框架专为构建可在大型部署中有效扩展的反应式微服务而设计。他们的重点不仅在于单个微服务,还在于整个系统。

4. 下拉向导

与我们在这篇文章中看到的其他框架不同,Dropwizard是一个 Java 框架,用于开发操作友好、高性能、RESTful Web 服务。一个自以为是的 Java 集合,使构建生产就绪的 Java 应用程序变得更加容易。

Dropwizard Modules允许挂接Dropwizard 核心不附带的其他项目,还有社区开发的模块可以挂接Netflix Eureka 等项目,类似于Spring Cloud。

底线:由于 Dropwizard 是一个社区项目,没有得到 Spring 和 Pivotal、Java EE 和 Oracle、Lagom 和 Lightbend 等大公司的支持,因此它的开发可能会慢一些,但它背后有一个强大的社区,它是一个不错的选择为大型公司和小型项目提供框架。

5. Vertx、Spotify Apollo、Kubeless 和其他“特定于微服务”的框架

除了我们在这里提到的 4 大玩家之外,还有很多其他项目值得一提,也可以用于编写微服务:

Vertx也隶属于 Eclipse Foundation,是一个用于在 JVM 上构建反应式应用程序的工具包。有些人可能会争辩说它应该在四大中占有一席之地。

Spotify Apollo是 Spotify 在编写 Java 微服务时使用的一组 Java 库。Apollo 包含 HTTP 服务器和 URI 路由系统等功能,使得实现 RESTful 服务变得轻而易举。

Kubeless是一个 Kubernetes 原生的无服务器框架。它专为部署在 Kubernetes 集群上而设计,因此用户能够使用原生 Kubernetes API 服务器和网关。

其他框架包括 Spark、Ninja 和 Jodd、Restlet和Bootique.io。

底线:Java 微服务的竞争环境相当大,值得一试的小玩家和行业巨头一样多。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>