现如今,最热门的13个Java微服务框架
曾经的 服务器领域 有许多不同的芯片架构???有哪些芯片架构???和操作系统???,经过长期发展,Java的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱。
本文,我们将和大家分享13个可靠的Java 微服务架构
1、Spring Boot
Java构建Spring应用程序哪些是Spring应用程序???已经有很长一段时间了,Spring Boot???是Spring的一个特定版本 Spring和Spring boot的关系是什么???,它通过对配置细节的处理,使微服务构建更加简便。创建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
微服务调试一直是开发人员的一大挑战,因为这些部件都是松散耦合的,并且很难跟踪通过系统所有层的数据流。通过使用Squash,可以在运行在Kubernetes集群上的代码中设置断点,然后像本地运行代码一样接收IDE中的所有数据。Squash还集成了 Node.js 和 Python 运行时
12、Telepresence
调试的另一个选项是使用Telepresence,它可以为远程Kubernetes集群上的微服务创建本地代理。在本地版本中,可以在其中设置断点或执行本地计算机上可进行的任何操作。
13、Zipkin
Zipkin用于记录各种微服务上的事件,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。Zipkin 有 Java 等至少六种语言实现版本,因此可处理多语言系统。不少框架已经通过某种形式集成 Zipkin,比如 Spring。
现如今,最热门的13个Java微服务框架的更多相关文章
- 最热门的 10 个 Java 微服务框架
1.Spring Boot Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便.创建 S ...
- Java微服务框架一览
引言:本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架. 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大.更复杂的应用程序,而这 ...
- Java微服务框架
Java的微服务框架dobbo.spring boot.redkale.spring cloud 消息中间件RabbitMQ.Kafka.RocketMQ
- Java 微服务框架 Redkale 入门介绍
Redkale 功能 Redkale虽然只有1.xM大小,但是麻雀虽小五脏俱全.既可作为服务器使用,也可当工具包使用.作为独立的工具包提供以下功能:1.convert包提供JSON的序列化和反序列化功 ...
- Java 微服务框架选型(Dubbo 和 Spring Cloud?)
微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...
- [转]Java微服务框架选型(Dubbo 和 Spring Cloud?)
转载于 http://www.cnblogs.com/xishuai/p/dubbo-and-spring-cloud.html 微服务(Microservices)是一种架构风格,一个大型复杂软件应 ...
- Java 微服务框架选型 Dubbo 和 Spring Cloud
微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...
- 85道Java微服务面试题整理(助力2020面试)
微服务 面试题 1.您对微服务有何了解? 2.微服务架构有哪些优势? 3.微服务有哪些特点? 4.设计微服务的最佳实践是什么? 5.微服务架构如何运作? 6.微服务架构的优缺点是什么? 7.单片,SO ...
- Java微服务 vs Go微服务,究竟谁更强!?
前言 Java微服务能像Go微服务一样快吗? 这是我最近一直在思索地一个问题. 去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nels ...
随机推荐
- Error (10170): Verilog HDL syntax error at passwd.v(21) near text "if"; expecting an identifier ("if" is a reserved keyword ), or "endmodule", or a parallel statement
你得加上时序啊笨蛋
- BUUCTF MISC ZIP
这道题有点烦,拿出来单独写先贴两张图,一会用 首先这题给了68个压缩包,每个压缩包里只有4bytes大小,于是可以想到是crc爆破,自己写的脚本总是被killed,犯懒找了个脚本 import zip ...
- 5、springcloud整合mybatis注解方式
1.上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者.中间还穿插使用了Hikari数据源和spring cloud整合mybatis.但是上篇使用mybatis时还是沿用了老的 ...
- 微信小程序のwxss选择器
一.什么是选择器 选择器就是选择标签所用样式的模式,即:以什么方式设置样式. 二.微信小程序的样式选择器 .calss就是选择器的一种 三.选择器的优先级 element表示样式元素:.element ...
- IDEA webapp文件夹不识别解决方案
使用IDEA 创建moudule 用的是的是maven archertype-quickstart ,自动生成并么有webapp目录,于是我从别的项目中拷贝了一个,发现webapp文件夹图标和普通文件 ...
- Qt Creator 无法解析的外部符号(转)
https://blog.csdn.net/yvhvv/article/details/8474356 一直报某个构造函数无法解析,但看了下代码中没有问题,后来把debug文件夹删掉,重新运行后问题解 ...
- Cache技术―OSCache
Cache技术―OSCache 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://aumy2008.blogbus.com/logs/36462938.html 一.简介 ...
- 浅谈JAVA线程
一.线程(Thread) 1.线程 线程:是指程序中的顺序流 多线程:一个程序中的多个顺序流同时执行 (1)线程的状态: 新生 就绪 运行 阻塞 终止 (2)学习多线程: 1)线程的创建 2)线程的状 ...
- Docker 初识之路
一. 安装配置 1.安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置阿里云镜像源 sudo yu ...
- 基础(一):SCSI硬盘与IDE硬盘有什么区别
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的 ...