曾经的 服务器领域 有许多不同的芯片架构???有哪些芯片架构???和操作系统???,经过长期发展,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微服务框架的更多相关文章

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

    1.Spring Boot Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便.创建 S ...

  2. Java微服务框架一览

    引言:本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架. 微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大.更复杂的应用程序,而这 ...

  3. Java微服务框架

    Java的微服务框架dobbo.spring boot.redkale.spring cloud 消息中间件RabbitMQ.Kafka.RocketMQ

  4. Java 微服务框架 Redkale 入门介绍

    Redkale 功能 Redkale虽然只有1.xM大小,但是麻雀虽小五脏俱全.既可作为服务器使用,也可当工具包使用.作为独立的工具包提供以下功能:1.convert包提供JSON的序列化和反序列化功 ...

  5. Java 微服务框架选型(Dubbo 和 Spring Cloud?)

    微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...

  6. [转]Java微服务框架选型(Dubbo 和 Spring Cloud?)

    转载于 http://www.cnblogs.com/xishuai/p/dubbo-and-spring-cloud.html 微服务(Microservices)是一种架构风格,一个大型复杂软件应 ...

  7. Java 微服务框架选型 Dubbo 和 Spring Cloud

    微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...

  8. 85道Java微服务面试题整理(助力2020面试)

    微服务 面试题 1.您对微服务有何了解? 2.微服务架构有哪些优势? 3.微服务有哪些特点? 4.设计微服务的最佳实践是什么? 5.微服务架构如何运作? 6.微服务架构的优缺点是什么? 7.单片,SO ...

  9. Java微服务 vs Go微服务,究竟谁更强!?

    前言 Java微服务能像Go微服务一样快吗? 这是我最近一直在思索地一个问题. 去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nels ...

随机推荐

  1. 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

    你得加上时序啊笨蛋

  2. BUUCTF MISC ZIP

    这道题有点烦,拿出来单独写先贴两张图,一会用 首先这题给了68个压缩包,每个压缩包里只有4bytes大小,于是可以想到是crc爆破,自己写的脚本总是被killed,犯懒找了个脚本 import zip ...

  3. 5、springcloud整合mybatis注解方式

    1.上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者.中间还穿插使用了Hikari数据源和spring cloud整合mybatis.但是上篇使用mybatis时还是沿用了老的 ...

  4. 微信小程序のwxss选择器

    一.什么是选择器 选择器就是选择标签所用样式的模式,即:以什么方式设置样式. 二.微信小程序的样式选择器 .calss就是选择器的一种 三.选择器的优先级 element表示样式元素:.element ...

  5. IDEA webapp文件夹不识别解决方案

    使用IDEA 创建moudule 用的是的是maven archertype-quickstart ,自动生成并么有webapp目录,于是我从别的项目中拷贝了一个,发现webapp文件夹图标和普通文件 ...

  6. Qt Creator 无法解析的外部符号(转)

    https://blog.csdn.net/yvhvv/article/details/8474356 一直报某个构造函数无法解析,但看了下代码中没有问题,后来把debug文件夹删掉,重新运行后问题解 ...

  7. Cache技术―OSCache

    Cache技术―OSCache 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://aumy2008.blogbus.com/logs/36462938.html 一.简介 ...

  8. 浅谈JAVA线程

    一.线程(Thread) 1.线程 线程:是指程序中的顺序流 多线程:一个程序中的多个顺序流同时执行 (1)线程的状态: 新生 就绪 运行 阻塞 终止 (2)学习多线程: 1)线程的创建 2)线程的状 ...

  9. Docker 初识之路

    一. 安装配置 1.安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2   2.设置阿里云镜像源 sudo yu ...

  10. 基础(一):SCSI硬盘与IDE硬盘有什么区别

    硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的 ...