种草了!分享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?千亿体育手机登录版千亿体育手机登录版千亿体育手机登录版?榻玂penAPI规范转换成该语言的实现千亿体育手机登录版千亿体育手机登录版。
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千亿体育手机登录版千亿体育手机登录版千亿体育手机登录版。
好了,以上就是小编今天要分享的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?千亿体育手机登录版千亿体育手机登录版千亿体育手机登录版?榻玂penAPI规范转换成该语言的实现千亿体育手机登录版千亿体育手机登录版。
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千亿体育手机登录版千亿体育手机登录版千亿体育手机登录版。
好了,以上就是小编今天要分享的13种Java微服务框架千亿体育手机登录版,希望可以给各位朋友们带来帮助千亿体育手机登录版!
相关新闻推荐
- 企业网站制作时千亿体育手机登录版,如何规划网站呢? 2019-06-26
- css3渐变色效果的实现 2019-08-07
- Java知识扫盲:Java的11个主要特征综述 2019-08-28
- 关于高端品牌网站建设的一些建议 2019-12-18
- 制作一个企业网站需要多少钱?[图] 2018-11-22
- 网站建设要怎样进行方案的制定呢千亿体育手机登录版? 2020-05-29