专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 2022年十大微服务开发框架

2022年十大微服务开发框架

更新时间:2022-04-18 09:53:53 来源:动力节点 浏览3955次

1. Spring Boot 与 Spring Cloud

Spring Boot 是用于编写微服务的流行 Java 框架。它提供了 Spring Cloud 下的各种扩展项目来构建全栈微服务。Spring Boot 允许通过从许多协作组件开始简单的架构来构建大规模系统。它可用于构建小型和大型系统。由于控制反转,Spring boot 很容易与其他流行的框架集成。

数据管理——Spring 有各种模块可以轻松地与流行的数据库集成。Spring JDBC、Spring JPA、Spring MongoDB、Spring Apache Cassandra 是少数扩展。

处理失败的策略——Spring boot 可以很容易地与 Resilience4J 集成。它提供了各种功能来处理分布式系统中的故障。断路器、重试、超时、速率限制器、后备处理程序、隔板等。

可观察性——Spring Boot Actuator 功能强大,它提供健康检查、查看日志、Metrix。

沟通方式——Spring具有构建反应式应用程序的能力。在 Spring MVC 的帮助下构建 rest API 非常容易。Spring 很容易与 MQ 集成以构建异步风格的服务。Spring 也有构建基于 SOAP 的应用程序的模块。

中间层集成——借助各种模块 Spring 提供抽象以与 Apache Kafka、任何 AMQP、RabbitMQ、ActiveMQ 集成

与工具集成— Consul、Prometheus、Jaeger、Grafana

云原生支持——易于在 Docker、Kubernetes、OpenTracing、Etcd、DevOps 上部署

安全性——Spring Security,对 OAuth2 的良好支持,会话管理,可以构建有状态和无状态服务。密钥库、网关模式

分布式配置管理——Spring Cloud Config

服务发现——客户端、服务器端

性能— 捕获支持、负载平衡、使用 Spring Cloud Cluster 进行集群

通信数据格式——JSON、XML

测试— Spring 测试模块、Mocking、Profiling

学习曲线——模块化易于学习

2. Eclipse Vert.X 微服务框架

Eclipse 基金会的另一个流行的微服务服务框架。该框架支持多种语言。因此,如果任何组织都拥有 Java 和 Kotlin,那么 JavaScript 开发人员这个微服务框架应该是他们的理想选择。Vertx 是一个用于构建在 JVM 上运行的反应式微服务的工具包。

Eclipse Vert.x 是事件驱动且非阻塞的。这意味着您的应用程序可以使用少量内核线程来处理大量并发。Vert.x 让您的应用程序以最少的硬件扩展。

Vert.x 提供的一些很酷的功能

Vert.x 是轻量级的——Vert.x 核心大小约为 650kB。

Vert.x很快。这里有一些独立的数字。

Vert.x不是应用服务器。没有用于部署应用程序的单一 Vert.x 实例。您只需在任何您想运行的地方运行您的应用程序。

Vert.x 是模块化的——当您需要更多位时,只需添加您需要的位,仅此而已。

Vert.x简单但不简单。Vert.x 允许您简单地创建功能强大的应用程序。

Vert.x 是创建轻量级、高性能的微服务的理想选择。

Vert.x 提供各种组件/库来构建微服务应用程序。其中一些列在这里。

Vert.x 服务发现

该组件允许您发布、查找和绑定到任何类型的服务。

Vert.x 断路器

该组件提供了 Vert.x 断路器模式的实现

Vert.x Config

该组件提供了一种可扩展的方式来配置 Vert.x 应用程序。

集群和可扩展性

Vert.x 支持开箱即用的集群和 HA。集群组管理在可插拔的集群管理器中实现。默认集群管理器使用 Hazelcast。但是你也有像 Apache Zookeeper、Ignite 这样的选项。

可观察

性 Vert.x 健康检查组件提供了一种公开健康检查的简单方法。运行状况检查用于以非常简单的术语表达应用程序的当前状态:UP 或 DOWN。健康检查可以单独使用,也可以与 Vert.x Web 或事件总线结合使用。

测试

Vertx 单元旨在使用多语言 API 编写异步单元测试并在 JVM 中运行这些测试。Vertx Unit Api 借鉴了 JUnit 或 QUnit 等现有测试框架,并遵循 Vert.x 实践。

gRPC 支持

Vert.x gRPC 是一个模块,它将 Google gRPC 的编程风格与 Vert.x 风格保持一致。

服务代理

当您编写一个 Vert.x 应用程序时,您可能希望在某处隔离一个功能并使其可供应用程序的其余部分使用。这是服务代理的主要目的。它允许您在事件总线上公开服务,因此,任何其他 Vert.x 组件都可以使用它。

Devops

Vert.x 提供了各种组件来让您的 Vert.x 应用程序在生产中运行时保持正常运行,例如 Micrometer、Dropwizard。

Vert.x 比 Spring boot 有一个很大的优势,Vert.x 是 Polyglot。

3. Oracle Helidon 微服务框架

Oracle 开发的 Helidon 微服务框架。Helidon 是一组用于编写微服务的 Java 库。有两种变体,Helidon MP 和 Helidon SE。如果我们将 Helidon 与 Spring Boot 进行比较,Spring Boot 执行了许多功能。Helidon 是相当新的,目前没有很多可用的文档,有时很难在 stackoverflow 上找到解决方案。

Helidon MP 是 MicroProfile 规范的实现。这使它成为 Java EE 开发人员的不错选择。

Helidon SE 是一个紧凑的工具包,包含最新的 Java SE 功能:反应式流、异步和函数式编程,以及流式 API。Helidon SE 支持GraalVM 原生镜像,可实现小尺寸和轻快的快速启动。Helidon SE 的 REST 框架是 Helidon WebServer。它建立在 Netty 之上,并使用直接的请求路由 API。

这些是构建微服务应用程序的几个 Helidon MP 功能

云原生

Helidon 库与来自云原生空间的流行工具互操作:

Docker和 Kubernetes

普罗米修斯, OpenTracing和Etcd

gRPC Support

Helidon gRPC Server 提供了一个用于创建 gRPC 应用程序的框架。

分布式配置管理

配置组件提供了一个 Java API 以将键/值形式的配置属性加载和处理到一个配置对象中,应用程序可以使用该对象来检索配置数据。

运行状况检查和跟踪

运行状况检查以公开由外部工具(例如 Kubernetes 等协调器)定期收集的运行状况。Helidon 支持通过 OpenTracing API 进行跟踪。跟踪与 WebServer、gRPC 服务器和安全性集成。

安全

支持认证、授权和审计。

4. GoMirco(Golang 微服务框架)

Go Micro 是一个基于 RPC 的可插拔库,它提供了在 Go 中编写微服务的基本构建块。它使用 consul 实现服务发现、通过 http 进行通信以及使用 proto-rpc 或 json-rpc、Pub/Sub 进行编码。

Go Micro 解决了构建可扩展系统的关键要求。它采用微服务架构模式并将其转换为一组充当平台构建块的工具。Micro 处理分布式系统的复杂性,并提供开发人员已经理解的简单抽象。

技术在不断发展。基础设施堆栈总是在变化。Micro 是一个解决这些问题的可插拔工具包。插入任何堆栈或底层技术。使用 micro 构建面向未来的系统。

特征

运行时由以下功能组成:

API 网关:微 api 通过发现和可插入处理程序提供强大的路由,以服务于 http、grpc、websockets、发布事件等。

交互式 CLI: CLI 为您提供了您希望了解微服务正在发生什么的所有命令。

Service Proxy:基于Go Micro和MUCP协议构建的透明代理。将服务发现、负载平衡、消息编码、中间件、传输和代理插件卸载到一个位置。独立运行或与您的服务一起运行。

服务模板:生成新的服务模板以快速入门。Micro 提供了用于编写微服务的预定义模板。始终以相同的方式开始,构建相同的服务以提高生产力。

SlackOps Bot:在您的平台上运行的机器人,可让您从 Slack 本身管理您的应用程序。微型机器人支持 ChatOps,并让您能够通过消息传递与您的团队一起做任何事情。

Web 仪表板: Web 仪表板允许您探索您的服务、描述它们的端点、请求和响应格式,甚至直接查询它们。

5. Molecular(NodeJS 微服务框架)

Molecular 是一个有趣的微服务框架。随着 NodeJS 越来越流行,如果您是 JavaScript 开发人员,这个框架是最好的选择。Moleculer 是一个快速、现代且功能强大的 NodeJS 微服务框架。它可以帮助您构建高效、可靠和可扩展的服务。

几个主要特点

支持具有平衡的事件驱动架构

内置服务注册和动态服务发现

负载平衡的请求和事件(循环、随机、cpu 使用、延迟、分片)

许多容错功能(断路器、隔板、重试、超时、回退)

内置缓存解决方案(Memory、MemoryLRU、Redis)

可插拔记录器(Console、File、Pino、Bunyan、Winston、Debug、Datadog、Log4js)

内置记者指标功能

导出器的内置跟踪功能(Console、Datadog、Event、Jaeger、Zipkin)

6. Quarkus 微服务框架

这个框架非常新,非常适合 Kubernetes 爱好者。Quarkus 是 Red Hat 的云原生容器优先框架,用于编写 Java 应用程序。Quarkus 是为 GraalVM 和 HotSpot 量身定制的 Kubernetes 原生 Java 框架,采用同类最佳的 Java 库和标准制作而成。Quarkus 的目标是使 Java 成为 Kubernetes 和无服务器环境中的领先平台,同时为开发人员提供统一的反应式和命令式编程模型,以优化处理更广泛的分布式应用程序架构。

7. Micronaut

Micronaut 是一个现代的、基于 JVM 的全栈微服务框架,旨在构建模块化、易于测试的微服务应用程序。

Micronaut 由 Grails 框架的创建者开发,并从多年来使用 Spring、Spring Boot 和 Grails 构建从单体应用程序到微服务的实际应用程序的经验教训中汲取灵感。

Micronaut 旨在提供构建功能齐全的微服务应用程序所需的所有工具,包括:

依赖注入和控制反转(IoC)

合理的默认值和自动配置

配置与配置共享

服务发现

HTTP 路由

具有客户端负载平衡的 HTTP 客户端

同时,Micronaut 旨在通过提供以下功能来避免 Spring、Spring Boot 和 Grails 等框架的缺点:

快速启动时间

减少内存占用

最少使用反射

最少使用代理

简单的单元测试

8. Lightbend Lagom 微服务框架

Lagom 是一个开源框架,用于在 Java 或 Scala 中构建反应式微服务系统。Lagom 建立在Akka和Play的基础上,这些经过验证的技术已在当今一些最苛刻的应用程序中投入使用。

Lagom 的集成开发环境使您可以专注于解决业务问题,而不是将服务连接在一起。一个命令即可构建项目,开始支持组件和您的微服务,以及 Lagom 基础设施。当它检测到对源代码的更改时,构建会热重新加载。

使用 Lagom 创建的大小合适的服务能够:

更好地定义开发职责——提高敏捷性

更频繁的发布,风险更小——以缩短上市时间

具有反应特性的系统:响应性、弹性、可扩展性和弹性——充分利用现代计算环境并满足苛刻的用户期望

9. AxonIQ 微服务框架

Axon 提供了一种统一、高效的 Java 应用程序开发方式,无需从单体架构到事件驱动微服务的重大重构即可发展。

Axon 包括一个编程模型和专门的基础设施,为编程模型提供企业就绪的运营支持——尤其是用于扩展和分发关键任务业务应用程序。编程模型由流行的 Axon Framework 提供,而 Axon Server 是 Axon 的基础设施部分,全部开源。

Axon Framework 是一个 Java 微服务框架,可帮助您构建符合领域驱动设计 (DDD) 原则的微服务架构。

除了 DDD,Axon 框架还允许您实现微服务模式,例如命令-查询-责任-分离 (CQRS) 和事件驱动架构。

Axon 已准备好满足最苛刻的企业需求,例如最有效地扩展事件存储、安全性、集群、负载平衡、服务发现、全球分布式数据中心、第三方集成、指标和监控。

10. Ballerina 微服务语言

Ballerina 不是一个框架,它是一种用于编写分布式应用程序的分布式编程语言。它是从头开始构建的,用于编写解耦的服务。编写网络应用程序非常容易。Ballerina 是一种开源编程语言和平台,供云时代应用程序程序员轻松编写有效的软件。

还有更多的特性,比如线程、流、安全和对微服务的原生支持,我在这里没有提到。

总体而言,芭蕾舞女演员提供:

专门用于消费和提供网络服务的语言结构。

与序列图密切对应的并发和网络交互的抽象和语法,可实现 Ballerina 源代码在文本和图形表示之间的双向映射。

一种结构类型系统,它比传统的静态类型语言更灵活并且允许更松散的耦合。

设计以适应现代开发生命周期,包括使用持续集成和持续交付 (CI/CD) 工具,例如 Jenkins、Travis 和 Codefresh;可观察性工具,例如 Prometheus、Zipkin 和 Honeycomb;以及 Kubernetes 等云编排系统。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>