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。

 为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

最热门的10个Java微服务框架相关推荐

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

    本文,我们将和大家分享13个可靠的Java微服务架构 1.Spring Boot Java构建Spring应用程序已经有很长一段时间了,Spring Boot是Spring的一个特定版本,它通过对配置 ...

  2. 【插件发布】JAVA微服务框架,Jeecg-P3-Biz-OA 1.0.0 插件开源发布

    JAVA微服务框架,Jeecg-P3-Biz-OA 1.0.0 插件开源发布 OA办公插件,采用JEECG-P3微服务框架技术,实现OA办公基本功能,H5页面素材:相册管理.联系人.联系人详细.报表. ...

  3. Java 微服务框架选型

    Java 微服务框架选型(Dubbo 和 Spring Cloud?) 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署, ...

  4. 【插件发布】JAVA微服务框架,Jeecg-P3-Base-System 1.0.0 插件开源发布

    JAVA微服务框架,Jeecg-P3-Base-System 1.0.0 插件开源发布 系统管理插件,采用JEECG-P3微服务框架技术,实现了P3插件平台支撑的基础功能:用户管理,角色管理.菜单管理 ...

  5. 【插件发布】JAVA微服务框架,Jeecg-P3-Demo 1.0.0 插件开源发布

    JAVA微服务框架,Jeecg-P3-Demo 1.0.0 插件开源发布 Jeecg-P3-Demo项目,采用JEECG-P3微服务框架技术,做了几个常见Demo功能案例:普通列表.树列表.一对多列表 ...

  6. 主流Java微服务框架有哪些?-开课吧

    本文我们简单聊聊当下主流的3个Java微服务框架,看看各自的特点. 1.Spring and SpringBoot SpringBoot在Java微服务领域绝对是一哥,毫无争议,据说已经占据57%的市 ...

  7. Java微服务框架一览

    原文:Java Microservices: Code Examples, Tutorials, and More 作者:Angela Stringfellow 翻译:雁惊寒 译者注:本文首先简单介绍 ...

  8. java微服务框架有哪些_java中有哪些常见微服务框架

    常见微服务框架介绍: Spring Boot:这可能是最好的Java微服务框架了,它适用于控制反转.面向切面编程等等. 示例代码:import org.springframework.boot.*; ...

  9. 3 个主流 Java 微服务框架

    本文我们简单聊聊当下主流的 3 个 Java 微服务框架,看看各自的特点. 1. Spring and Spring Boot Spring Boot 在 Java 微服务领域绝对是一哥,毫无争议,据 ...

最新文章

  1. LSD-SLAM 编译过程(Ubuntu 14.04 + ROS Indigo
  2. python 实现杨辉三角(依旧遗留问题)
  3. 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query
  4. 退出登录后点返回键 是登录状态_看了这50条登录的测试点,你还敢说测试很容易吗...
  5. Apollo进阶课程㊴丨Apollo安装过程概述
  6. 从二叉搜索树到平衡二叉搜索树
  7. inno setup 打包工具介绍
  8. PX4从放弃到精通(一):开源飞控PX4简介+系列文章大纲
  9. sql 去重查询 distinct
  10. Python基础数据类型:字符串,列表,元组,集合,字典用法总结
  11. 商业研究(17):以小见大,看互联网经济(4个股权众筹平台,4个领域,10个项目,8个图)
  12. fatal: unable to access ‘https://github xxxxxxxxx的解决方法
  13. Confusing conditions about MySQL script
  14. 计算机网络为何使用分组交换,而不是电路交换
  15. python 模拟键盘输入组合键_Python Selenium keys快捷键和键盘操作|send_keys输入按键,SHIFT,CTRL+组合键...
  16. 英语--日常生活名词收集 Daily Life Nouns Collection
  17. BSV 上的点对点结算衍生品:远期合约
  18. 口袋妖怪php源码,查看“精灵宝可梦 X·Y/新宝可梦”的源代码
  19. 2022劳务员-岗位技能(劳务员)考试题及模拟考试【无标题】
  20. vivo+x21+android版本,vivo X21参数_vivo X21配置怎么样-太平洋IT百科

热门文章

  1. C++学习—— mutable和 extern
  2. 计算机网络(二十一)-数据链路层设备
  3. Leetcode--289. 生命游戏
  4. Leetcode--142. 环形链表Ⅱ
  5. python选择某一行_Python常用语法有哪些 如何快速入门Python开发
  6. 虚拟搭建局域网模拟器_巧用虚拟局域网,快速搭建私有云,一步就能搞定
  7. python字符串随机排序_python 随机数使用方法,推导以及字符串,双色球小程序实例...
  8. LaTeX表格字太贴近上面表线
  9. python保存的图片不完整
  10. 吴恩达《机器学习》学习笔记十三——机器学习系统(补充)