2021 年 10 大微服务框架

1. Spring Boot 与 Spring Cloud

2021 年 10 大微服务框架

文章插图
 
Spring Boot 是用于编写微服务的 JAVA 基础框架 。在Spring Cloud 提供了各种构建全栈微服务的功能 。构建小型和大型系统都适合 。由于控制反转,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 测试模块,模拟,分析
学习曲线——由于模块化而易于学习
 
2. Eclipse Vert.X 微服务框架
2021 年 10 大微服务框架

文章插图
 
【2021 年 10 大微服务框架】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提供断路器模式的实现
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 等现有测试框架 。
gRPC 支持
Vert.x gRPC 是一个模块,它将谷歌 gRPC 的编程风格与 Vert.x 风格保持一致 。
服务代理
在编写Vert.x应用程序时,你想在屏蔽某项功能,但其他功能可以照常使用 。这就是服务代理的主要目的 。它允许事件总线公开服务,因此任何其他Vert.x组件都可以使用它 。
Devops
Vert.x 提供了各种组件来使 Vert.x 应用程序在生产环境中运行时保持正常运行,例如 Micrometer、Dropwizard 。
Vert.x 相对于 Spring boot 的一大优势是,Vert.x 可使用多种语言 。
 


推荐阅读