• 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 如果有任何体验不佳的地方,欢迎向客服反馈!

最热门的13个Java微服务框架

曾经的服务器领域有许多不同的芯片架构和操作系统,经过长期发展,Java 的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱
本文,我们将和大家分享 13 个可靠的 Java微服务架构

1、Spring Boot

Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便。
创建 Spring Boot 旨在自启动任何类型的 Spring 项目,而不仅仅是微服务
应用程序完成后,Spring Boot 将在 web 服务器中混合,并输出一个 JAR 文件,JVM 除外。你可以将其视为原始 Docker 容器。
这也是许多负责构建微服务的开发者都非常喜欢 Spring Boot 的原因。
使用 Spring 开发微服务遵循与 Web 应用相同的 MVC 理念。
该框架享有多年 Java 开发中建立的所有深度连接,包括所有主要和次要数据存储、LDAP 服务器和 Apache Kafka 等消息传递工具的集成。
还有许多用于维护运行服务器集合的小特性,比如 Spring Vault,这是一种用于维护生产环境中服务器所需的密码的工具。
所有这些优点都说明了为什么 Java 程序员多年来一直喜欢 Spring Boot 的原因。

2、Eclipse MicroProfile

2016 年,Java Enterprise 社区决定清理 Java Enterprise Edition 中的内容,以便人们可以使用经典部件构建简单的微服务
他们去除了大量的库,但保留了处理 REST 请求,解析 JSON 和管理依赖注入的功能代码,最终被称为 Eclipse MicroProfile,其特性为快速而简单。
从那以后,MicroProfile 社区制定了一个协议,每季度发布一个新版本,同时添加新代码以保持微服务平稳安全地运行。
任何 Java EE 开发者都会非常熟悉开发过程和代码结构,而且还吧配置麻烦给省去了。

3、Dropwizard

当 Dropwizard 在 2011 年出现时,Dropwizard 框架为开发者提供了一个非常简单的模型,里面包含了许多重要的模块,你可以根据需求添加一些业务逻辑,或者配置其他内容,最后你会发现 JAR 文件非常小,并且能够快速启动。
Dropwizard 最大的限制可能是缺乏依赖注入。
如果你希望使用依赖项注入来保持代码的整洁和松散耦合,则需要自己添加库,这点和 Spring 不同,但是现在 Dropwizard 也支持大多数功能,包括日志记录、健康检查和提供弹性代码。

4、WildFly Thorntail

Red Hat 的工作人员使用一个灵活的配置工具构建了他们自己的 MicroProfile 版本。
该框架最初被称为 WildFly Swarm,但后来被重新命名为 WildFly Thorntail,Thorntail 通过指定所需的特性来帮助您创建自己的 Maven 构建文件,然后 Maven 负责组装所有东西。
Thorntail 还将通过扫描代码来检测组件,也可以使用 BOM(材料清单)文件覆盖。
当它全部运行时,Thorntail 将删除 Java Enterprise Edition 中不使用的部分,并创建一个很小的 JAR 文件,可以使用一个命令进行部署——这是一个非常巧妙的特性,允许 Thorntail 项目将其称为 Uber-JAR。
这是遵循 Java Enterprise Edition 的另一种传统方法,它不会保留所有沉重的负担。

5、Helidon

Helidon 去除了 Java Enterprise Edition,保留轻量级的、基于 servlet 的核心,并吸引了大量的粉丝。
在 Helidon 的,开发人员从 Netty,并添加代码进行路由和错误处理。
它采用了代码的两个基本模型,即所谓的 SE 和 MP 版本。
Node 开发者可能更熟悉 Helidon SE,因为其具有由句点连接的函数调用。使用 JAX-RS 的 Java 程序员则更熟悉 Helidon MP。
此外,Helidon 还集成了一些备受好评的工具,这些都是它能够吸引大量开发者的原因。

6、Cricket

另外一个用于快速 API 开发框架的是 Cricket。Cricket 很小,尽管它包括许多额外的功能,如键值数据存储,以避免连接数据库和调度程序来控制后台重复处理。
没有添加复杂性或其他依赖项,因此很容易将代码添加到 Cricket 并启动独立的微服务。

7、Jersey

开发 web 服务的标准方法之一是 RESTful web 服务的 Java API(又名 JAX-RS),这是 Jersey 框架中实现的通用规范。
这种方法主要依赖于使用注释来指定路径映射和返回细节。
从参数解析到 JSON 打包的所有其他内容都由 Jersey 处理。
Jersey 的主要优点是它实现了 JAX-RS 标准,这个特性非常受欢迎,一些开发人员习惯将 Jersey 与 Spring Boot 结合在一起使用。

8、Play

体验 JVM 跨语言能力的最佳方式之一是使用 Play 框架,这是可以与 Java 或任何其他 JVM 语言兼容的。
它的基础非常现代,具有异步、无状态的模型,不会让试图跟踪用户及其会话数据的线程使服务器过载。
还有许多额外的特性可以用来充实网站,比如 OpenID、验证和文件上传支持。
Play 代码库已经发展了十多年,因此你还会发现类似于对 XML 的支持的这种古老的功能。
play 既成熟又轻盈,这种组合还是比较有特色的。

9、Swagger

构建一个 API 看起来就像编写一个监听端口的代码一样简单,但是 Swagger 的开发人员不这么认为。
他们已经创建了一个完整的 API 规范语言 OpenAPI,你可以使用它来说明你的 API。
这似乎是一个额外的步骤,但是 Swagger 团队还提供了将该规范转换为自动化测试、文档等的代码。
Swagger 配置文件中的 API 很简单,用于实现接口、记录接口的,并提供一组工具来测试构建在其下的代码,甚至还有一种 API 治理机制。
Swagger 是一个 api 生态系统,它不局限于 Java。
如果你的团队迁移到 Node.js 或其他几十种语言中的任何一种,都有一个 Swagger Codegen 模块将 OpenAPI 规范转换成该语言的实现。

10、Restlet

不同框架之间最大的区别之一是和其他服务或库的连接数量。
Restlet 项目提供了更大的特性和连接集合,它已经与 JavaMail 之类的库集成,避免微服务需要对某些邮件服务器使用 POP、IMAP 或 SMTP;
为防构建大量文本索引和元数据,还集成了 Lucene 和 Solr。
Restlet 中还有很多特性在持续开发。
例如,你不需要使用 JSON,因为它可以直接处理 XML、CSV、YAML 和其他一些文件格式,此外,它还允许用户从 Chrome 浏览器测试 api。

11、Squash

微服务调试一直是开发人员的一大挑战,因为这些部件都是松散耦合的,并且很难跟踪通过系统所有层的数据流。
通过使用 Squash,可以在运行在 Kubernetes 集群上的代码中设置断点,然后像本地运行代码一样接收 IDE 中的所有数据。
Squash 还集成了 Node.js 和 Python 运行时

12、Telepresence

调试的另一个选项是使用 Telepresence,它可以为远程 Kubernetes 集群上的微服务创建本地代理。
在本地版本中,可以在其中设置断点或执行本地计算机上可进行的任何操作。

13、Zipkin

Zipkin 用于记录各种微服务上的事件,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。
Zipkin 有 Java 等至少六种语言实现版本,因此可处理多语言系统。
不少框架已经通过某种形式集成 Zipkin,比如 Spring。

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:最热门的 13 个 Java 微服务框架
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

欢迎 注册账号 登录 发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00