当前位置: 首页 > 科技观察

13个流行的Java微服务框架

时间:2023-03-12 13:50:54 科技观察

服务器领域曾经有很多不同的芯片架构和操作系统。经过长期的发展,Java的“一次编译,随处运行”使其在服务器领域占有一席之地,成为程序员的平台。***本文将与大家分享13种靠谱的Java微服务架构1.SpringBootJava构建Spring应用由来已久。SpringBoot是Spring的特定版本。处理,让微服务构建更简单。SpringBoot的创建是为了自启动任何类型的Spring项目,而不仅仅是微服务。应用完成后,SpringBoot会混入web服务器,输出一个JAR文件,JVM除外。您可以将其视为原始Docker容器。这也是为什么很多负责构建微服务的开发者非常喜欢SpringBoot的原因。使用Spring开发微服务遵循与Web应用程序相同的MVC理念。该框架享有在多年Java开发过程中构建的所有深度连接,包括与所有主要和辅助数据存储、LDAP服务器以及消息传递工具(如ApacheKafka)的集成。还有很多维护运行中服务器集合的小功能,比如SpringVault,一个维护生产中服务器所需密码的工具。所有这些优点解释了为什么Java程序员多年来一直钟爱SpringBoot。2.EclipseMicroProfile2016年,Java企业社区决定清理Java企业版中的内容,让人们可以使用经典部分构建简单的微服务。他们移除了大量库,但保留了处理REST请求、解析JSON和管理依赖注入的功能代码,最终被称为EclipseMicroProfile,其特点是快速和简单。从那时起,MicroProfile社区制定了一个协议,每季度发布一个新版本,同时添加新代码以保持微服务平稳、安全地运行。任何JavaEE开发者都会非常熟悉开发流程和代码结构,省去配置的麻烦。3.Dropwizard2011年Dropwizard出现时,Dropwizard框架为开发者提供了一个非常简单的模型,其中包含了很多重要的模块。您可以根据需要添加一些业务逻辑或配置其他内容。***你你会发现JAR文件很小,可以很快启动。Dropwizard最大的限制可能是缺乏依赖注入。如果你想使用依赖注入来保持你的代码干净和松散耦合,你需要自己添加库,这与Spring不同,但现在Dropwizard也支持大部分功能,包括日志记录、健康检查和提供弹性代码。4.RedHat的WildFlyThorntail人员使用灵活的配置工具构建了他们自己的MicroProfile版本。该框架最初称为WildFlySwarm,但后来更名为WildFlyThorntail。Thorntail通过指定所需的功能帮助您创建自己的Maven构建文件,然后Maven负责组装所有内容。Thorntail还将通过扫描代码检测组件,也可以使用BOM(物料清单)文件覆盖这些代码。当它全部运行时,Thorntail将删除JavaEnterpriseEdition中未使用的部分并创建一个可以使用单个命令部署的小型JAR文件-这是一个非常简洁的功能,允许Thorntail项目将其称为Uber-JAR。这是遵循JavaEnterpriseEdition的另一种传统方式,它不会保留所有繁重的工作。5、HelidonHelidon去掉了Java企业版,保留了一个轻量级的、基于servlet的内核,吸引了大批粉丝。在Helidon中,开发人员从Netty开始,并添加用于路由和错误处理的代码。它采用两种基本代码模型,即所谓的SE和MP版本。Node开发者可能更熟悉HelidonSE,因为它的函数调用由句点连接。使用JAX-RS的Java程序员更熟悉HelidonMP。此外,Helidon还集成了一些口碑不错的工具,这也是它能够吸引大量开发者的原因。6.Cricket另一个快速开发API的框架是Cricket。Cricket很小,但它包含许多额外的功能,例如避免连接到数据库的键值数据存储和控制后台重复处理的调度程序。没有增加复杂性或其他依赖性,因此很容易将代码添加到Cricket并启动独立的微服务。7.Jersey开发web服务的标准方法之一是JavaAPIforRESTfulwebservices(akaJAX-RS),它是在Jersey框架中实现的通用规范。这种方法主要依赖于使用注解来指定路径映射和返回细节。从参数解析到JSON打包的所有其他事情都由Jersey处理。Jersey的主要优点是它实现了JAX-RS标准。此功能非常受欢迎,一些开发人员习惯于将Jersey与SpringBoot结合使用。8.Play体验JVM跨语言能力的最佳方式之一是使用Play框架,它兼容Java或任何其他JVM语言。它的基础非常现代,具有异步、无状态模型,不会因试图跟踪用户及其会话数据的线程而使服务器过载。有许多附加功能可用于充实网站,例如OpenID、身份验证和文件上传支持。Play代码库已经发展了十多年,因此您还会发现诸如支持XML之类的古老功能。打法既成熟又轻盈,这样的组合颇具特色。9.Swagger构建一个API看起来就像编写一个监听端口的代码一样简单,但是Swagger的开发者并不这么认为。他们创建了一个完整的API规范语言OpenAPI,您可以使用它来描述您的API。这看起来像是一个额外的步骤,但Swagger团队也提供了将该规范转化为自动化测试、文档等的代码。Swagger配置文件中的API非常简单,用于实现接口、记录接口并提供一组用于测试其下构建的代码的工具,甚至是API治理机制。Swagger是一个api生态系统,它不仅限于Java。如果您的团队迁移到Node.js或其他数十种语言中的任何一种,可以使用SwaggerCodegen模块将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运行时。Telepresence调试的另一种选择是使用Telepresence,它为远程Kubernetes集群上的微服务创建本地代理。在本地版本中,您可以设置断点或执行任何可以在本地计算机上执行的操作。13.ZipkinZipkin用于记录各种微服务上的事件,允许开发者收集各种Twitter服务的监控数据并提供查询接口。Zipkin至少有6种语言实现的版本,包括Java,因此它可以处理多语言系统。很多框架都以某种形式集成了Zipkin,比如Spring。