澳门新葡亰平台官网最热门的10个Java微服务框架

澳门新葡亰平台官网 3

本文由码农网 –
小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

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

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

这是关于Java的第二个调查,第一个调查请点这里查看。

本文,我们将和大家分享13个可靠的Java微服务架构

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用”没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

这一次,我们要讨论的是web框架。

1、Spring Boot

本文,我们将和大家分享13个可靠的Java微服务架构

澳门新葡亰平台官网 1

Java构建Spring应用程序已经有很长一段时间了,Spring
Boot是Spring的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便。创建Spring
Boot旨在自启动任何类型的Spring项目,而不仅仅是微服务。应用程序完成后,Spring
Boot将在web服务器中混合,并输出一个JAR文件,JVM除外。你可以将其视为原始Docker容器。这也是许多负责构建微服务的开发者都非常喜欢Spring
Boot的原因。

1、Spring Boot

只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据。下面是其他开发者所使用web框架列表:

使用 Spring 开发微服务遵循与 Web 应用相同的 MVC
理念。该框架享有多年Java开发中建立的所有深度连接,包括所有主要和次要数据存储、LDAP服务器和Apache
Kafka等消息传递工具的集成。还有许多用于维护运行服务器集合的小特性,比如Spring
Vault,这是一种用于维护生产环境中服务器所需的密码的工具。所有这些优点都说明了为什么Java程序员多年来一直喜欢Spring
Boot的原因。

Java构建Spring应用程序已经有很长一段时间了,Spring
Boot是Spring的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便。创建Spring
Boot旨在自启动任何类型的Spring项目,而不仅仅是微服务。应用程序完成后,Spring
Boot将在web服务器中混合,并输出一个JAR文件,JVM除外。你可以将其视为原始Docker容器。这也是许多负责构建微服务的开发者都非常喜欢Spring
Boot的原因。

  • Spring MVC/Spring
    Boot
    :Spring可以帮助各地的开发团队构建简单轻便、快捷灵活基于JVM的系统和应用程序
  • Vert.x
    :一个用于在JVM上构建反应式应用程序的工具包
  • JSF :官方的Java
    EE web框架
  • Play Framework :更容易地使用Java
    & Scala构建可拓展的、快速又实时的web应用程序
  • Grails :Java版本的Ruby on
    Rails,建立在Spring和Hibernate之上,用Groovy编写
  • Spark :
    一个受Sinatra启发的小型框架,帮助使用最小的努力在Java
    8中创建web应用程序
  • Apache Struts :一个MVC框架,用于创建优雅的、现代化的Java
    web应用程序
  • Dropwizard :一个用于开发操作友好、高性能、REST风格web服务的框架
  • Vaadin :一个服务器端框架,用于构建单个页面的web应用程序
  • JHipster :一个生成Spring Boot+
    AngularJS项目的应用程序生成器
  • Wicket :使得简洁、分离关注点和简单化开发到一个全新水平的web应用程序框架
  • JAX-RS :JDK的内部框架,用于创建REST风格的web服务
  • Stripes :让使用Servlet和JSP工作时变得轻松
  • Sling :一个使用 Java Content
    Repository,并得到OSGIt支持的web框架
  • GWT :Google开发的一个框架,可以编译Java代码为JavaScript运行在浏览器中
  • XSLT :用于转换XML文档为另一种XML文档的语言
  • Ratpack :用于构建现代化HTTP应用程序的Java库系列
  • Express :这不是Java
    web框架,而是建立在Node.js上的Javascript框架
  • Ninja
    framework :全栈web框架,协同GAE工作很好
  • Compojure :用于Ring和基于Clojure的web应用框架的小型路由库
  • ZK :一个开源的Java框架,用于构建企业级web和移动app
  • Symphony2 :用于web开发的高性能PHP框架
  • Java企业版 :是社区驱动企业软件的标准

2、Eclipse MicroProfile

使用 Spring 开发微服务遵循与 Web 应用相同的 MVC
理念。该框架享有多年Java开发中建立的所有深度连接,包括所有主要和次要数据存储、LDAP服务器和Apache
Kafka等消息传递工具的集成。还有许多用于维护运行服务器集合的小特性,比如Spring
Vault,这是一种用于维护生产环境中服务器所需的密码的工具。所有这些优点都说明了为什么Java程序员多年来一直喜欢Spring
Boot的原因。

大家如果用过这些框架,或对上面这些框架有任何看法,欢迎指出。期待听到你的声音。

2016年,Java Enterprise社区决定清理Java Enterprise
Edition中的内容,以便人们可以使用经典部件构建简单的微服务。他们去除了大量的库,但保留了处理REST请求,解析JSON和管理依赖注入的功能代码,最终被称为Eclipse
MicroProfile,其特性为快速而简单。

2、Eclipse MicroProfile

从那以后,MicroProfile社区制定了一个协议,每季度发布一个新版本,同时添加新代码以保持微服务平稳安全地运行。任何Java
EE开发者都会非常熟悉开发过程和代码结构,而且还吧配置麻烦给省去了。

2016年,Java Enterprise社区决定清理Java Enterprise
Edition中的内容,以便人们可以使用经典部件构建简单的微服务。他们去除了大量的库,但保留了处理REST请求,解析JSON和管理依赖注入的功能代码,最终被称为Eclipse
MicroProfile,其特性为快速而简单。

澳门新葡亰平台官网 2

从那以后,MicroProfile社区制定了一个协议,每季度发布一个新版本,同时添加新代码以保持微服务平稳安全地运行。任何Java
EE开发者都会非常熟悉开发过程和代码结构,而且还吧配置麻烦给省去了。

3、Dropwizard

3、Dropwizard

当Dropwizard在2011年出现时,Dropwizard框架为开发者提供了一个非常简单的模型,里面包含了许多重要的模块,你可以根据需求添加一些业务逻辑,或者配置其他内容,最后你会发现JAR文件非常小,并且能够快速启动。

当Dropwizard在2011年出现时,Dropwizard框架为开发者提供了一个非常简单的模型,里面包含了许多重要的模块,你可以根据需求添加一些业务逻辑,或者配置其他内容,最后你会发现JAR文件非常小,并且能够快速启动。

Dropwizard最大的限制可能是缺乏依赖注入。如果你希望使用依赖项注入来保持代码的整洁和松散耦合,则需要自己添加库,这点和Spring不同,但是现在Dropwizard也支持大多数功能,包括日志记录、健康检查和提供弹性代码。

Dropwizard最大的限制可能是缺乏依赖注入。如果你希望使用依赖项注入来保持代码的整洁和松散耦合,则需要自己添加库,这点和Spring不同,但是现在Dropwizard也支持大多数功能,包括日志记录、健康检查和提供弹性代码。

4、WildFly Thorntail

4、WildFly Thorntail

Red
Hat的工作人员使用一个灵活的配置工具构建了他们自己的MicroProfile版本。该框架最初被称为WildFly
Swarm,但后来被重新命名为WildFly
Thorntail,Thorntail通过指定所需的特性来帮助您创建自己的Maven构建文件,然后Maven负责组装所有东西。

Red
Hat的工作人员使用一个灵活的配置工具构建了他们自己的MicroProfile版本。该框架最初被称为WildFly
Swarm,但后来被重新命名为WildFly
Thorntail,Thorntail通过指定所需的特性来帮助您创建自己的Maven构建文件,然后Maven负责组装所有东西。

Thorntail还将通过扫描代码来检测组件,也可以使用BOM文件覆盖。当它全部运行时,Thorntail将删除Java
Enterprise
Edition中不使用的部分,并创建一个很小的JAR文件,可以使用一个命令进行部署——这是一个非常巧妙的特性,允许Thorntail项目将其称为Uber-JAR。这是遵循Java
Enterprise Edition的另一种传统方法,它不会保留所有沉重的负担。

Thorntail还将通过扫描代码来检测组件,也可以使用BOM文件覆盖。当它全部运行时,Thorntail将删除Java
Enterprise
Edition中不使用的部分,并创建一个很小的JAR文件,可以使用一个命令进行部署——这是一个非常巧妙的特性,允许Thorntail项目将其称为Uber-JAR。这是遵循Java
Enterprise Edition的另一种传统方法,它不会保留所有沉重的负担。

5、Helidon

5、Helidon

Helidon去除了Java Enterprise
Edition,保留轻量级的、基于servlet的核心,并吸引了大量的粉丝。在Helidon的,开发人员从Netty,并添加代码进行路由和错误处理。它采用了代码的两个基本模型,即所谓的SE和MP版本。

Helidon去除了Java Enterprise
Edition,保留轻量级的、基于servlet的核心,并吸引了大量的粉丝。在Helidon的,开发人员从Netty,并添加代码进行路由和错误处理。它采用了代码的两个基本模型,即所谓的SE和MP版本。

Node 开发者可能更熟悉Helidon
SE,因为其具有由句点连接的函数调用。使用JAX-RS的Java程序员则更熟悉Helidon
MP。此外,Helidon还集成了一些备受好评的工具,这些都是它能够吸引大量开发者的原因。

Node 开发者可能更熟悉Helidon
SE,因为其具有由句点连接的函数调用。使用JAX-RS的Java程序员则更熟悉Helidon
MP。此外,Helidon还集成了一些备受好评的工具,这些都是它能够吸引大量开发者的原因。

6、Cricket

6、Cricket

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

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

7、Jersey

7、Jersey

开发web服务的标准方法之一是RESTful web服务的Java
API,这是Jersey框架中实现的通用规范。这种方法主要依赖于使用注释来指定路径映射和返回细节。从参数解析到JSON打包的所有其他内容都由Jersey处理。

开发web服务的标准方法之一是RESTful web服务的Java
API,这是Jersey框架中实现的通用规范。这种方法主要依赖于使用注释来指定路径映射和返回细节。从参数解析到JSON打包的所有其他内容都由Jersey处理。

Jersey的主要优点是它实现了JAX-RS标准,这个特性非常受欢迎,一些开发人员习惯将Jersey与Spring
Boot结合在一起使用。

Jersey的主要优点是它实现了JAX-RS标准,这个特性非常受欢迎,一些开发人员习惯将Jersey与Spring
Boot结合在一起使用。

澳门新葡亰平台官网 3

8、Play

8、Play

体验JVM跨语言能力的最佳方式之一是使用Play框架,这是可以与Java或任何其他JVM语言兼容的。它的基础非常现代,具有异步、无状态的模型,不会让试图跟踪用户及其会话数据的线程使服务器过载。还有许多额外的特性可以用来充实网站,比如OpenID、验证和文件上传支持。

体验JVM跨语言能力的最佳方式之一是使用Play框架,这是可以与Java或任何其他JVM语言兼容的。它的基础非常现代,具有异步、无状态的模型,不会让试图跟踪用户及其会话数据的线程使服务器过载。还有许多额外的特性可以用来充实网站,比如OpenID、验证和文件上传支持。

Play代码库已经发展了十多年,因此你还会发现类似于对XML的支持的这种古老的功能。play既成熟又轻盈,这种组合还是比较有特色的。

Play代码库已经发展了十多年,因此你还会发现类似于对XML的支持的这种古老的功能。play既成熟又轻盈,这种组合还是比较有特色的。

9、Swagger

9、Swagger

构建一个API看起来就像编写一个监听端口的代码一样简单,但是Swagger的开发人员不这么认为。他们已经创建了一个完整的API规范语言OpenAPI,你可以使用它来说明你的API。这似乎是一个额外的步骤,但是Swagger团队还提供了将该规范转换为自动化测试、文档等的代码。

构建一个API看起来就像编写一个监听端口的代码一样简单,但是Swagger的开发人员不这么认为。他们已经创建了一个完整的API规范语言OpenAPI,你可以使用它来说明你的API。这似乎是一个额外的步骤,但是Swagger团队还提供了将该规范转换为自动化测试、文档等的代码。

Swagger配置文件中的API很简单,用于实现接口、记录接口的,并提供一组工具来测试构建在其下的代码,甚至还有一种API治理机制。

Swagger配置文件中的API很简单,用于实现接口、记录接口的,并提供一组工具来测试构建在其下的代码,甚至还有一种API治理机制。

Swagger是一个api生态系统,它不局限于Java。如果你的团队迁移到Node.js或其他几十种语言中的任何一种,都有一个Swagger
Codegen模块将OpenAPI规范转换成该语言的实现。

Swagger是一个api生态系统,它不局限于Java。如果你的团队迁移到Node.js或其他几十种语言中的任何一种,都有一个Swagger
Codegen模块将OpenAPI规范转换成该语言的实现。

10、Restlet

10、Restlet

不同框架之间最大的区别之一是和其他服务或库的连接数量。Restlet项目提供了更大的特性和连接集合,它已经与JavaMail之类的库集成,避免微服务需要对某些邮件服务器使用POP、IMAP或SMTP;为防构建大量文本索引和元数据,还集成了
Lucene 和 Solr。

不同框架之间最大的区别之一是和其他服务或库的连接数量。Restlet项目提供了更大的特性和连接集合,它已经与JavaMail之类的库集成,避免微服务需要对某些邮件服务器使用POP、IMAP或SMTP;为防构建大量文本索引和元数据,还集成了
Lucene 和 Solr。

Restlet中还有很多特性在持续开发。例如,你不需要使用JSON,因为它可以直接处理XML、CSV、YAML和其他一些文件格式,此外,它还允许用户从Chrome浏览器测试api。

Restlet中还有很多特性在持续开发。例如,你不需要使用JSON,因为它可以直接处理XML、CSV、YAML和其他一些文件格式,此外,它还允许用户从Chrome浏览器测试api。

11、Squash

“我自己是一名老程序员,辞职后在线上做讲师,今年我整理了一份适合2019年学习的Java编程资料干货,从最基础的面向对象到各种框架都有整理,送给每一位初学和进阶中学习Java编程的小伙伴。”

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

加QQ群:730379855

12、Telepresence

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

13、Zipkin

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

另外本人从事在线教育多年,将自己的资料整合建了一个QQ群,对于有兴趣一起交流学习java的初学者可以加群:732976516,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图