最主流的java微服务框架有哪些
曾经的服务器领域有许多不同的芯⽚架构和操作系统,经过长期发展,Java的“⼀次编译,到处运⾏”使得它在服务器领域到⼀席之地,成为程序员们的最爱。下⾯动⼒节点java培训机构⼩编为⼤家分享最主流的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
java调用python模型微服务调试⼀直是开发⼈员的⼀⼤挑战,因为这些部件都是松散耦合的,并且很难跟踪通过系统所有层的数据流。通过使⽤Squash,可以在运⾏在Kubernetes集上的代码中设置断点,然后像本地运⾏代码⼀样接收IDE中的所有数据。Squash还集成了 Node.js 和 Python 运⾏。
12、Telepresence
调试的另⼀个选项是使⽤Telepresence,它可以为远程Kubernetes集上的微服务创建本地代理。在本地版本中,可以在其中设置断点或执⾏本地计算机上可进⾏的任何操作。
13、Zipkin
Zipkin⽤于记录各种微服务上的事件,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接⼝。Zipkin 有
Zipkin⽤于记录各种微服务上的事件,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接
⼝。Zipkin 有Java 等⾄少六种语⾔实现版本,因此可处理多语⾔系统。不少框架已经通过某种形式集成 Zipkin,⽐如 Spring。
以上就是动⼒节点java培训机构⼩编分享的“最主流的java微服务框架有哪些”的内容,希望对⼤家有帮助,更多java最新资讯请继续关注动⼒节点java培训机构官⽹,每天会有精彩内容分享与你。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论