当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-现在有哪些流行的微服务解决方案

金三银四精选java面试题-现在有哪些流行的微服务解决方案

来源:图灵教育
时间:2023-12-08 10:21:14
 

现在有哪些流行的微服务解决方案

目前最主流的微服务开源解决方案有三种:

  1. Dubbo:Dubbo工作原理图-来源官网
    • Dubbo 是一个高性能、轻量级的 Java 微服务框架,最初由阿里巴巴(Alibaba)开发并于2011年开源。它提供了服务注册与发现、负载均衡、容错、分布式调用等功能,后来一度停止维护,在近两年,又重新开始迭代,并推出了Dubbo3。
    • Dubbo 使用基于 RPC(Remote Procedure Call)的通信模型,具有较高的性能和可扩展性。它支持多种传输协议(如TCP、HTTP、redis)和序列化方式(如JSON、Hessian、Protobuf),可根据需求进行配置。
    • Dubbo更多地被认为是一个高性能的RPC(远程过程调用)框架,一些服务治理功能依赖于第三方组件实现,比如使用ZooKeeper、Apollo等等。
  1. Spring Cloud Netflix:
    • Spring Cloud Netflix 是 Spring Cloud 的一个子项目,结合了 Netflix 开源的多个组件,但是Netflix自2018年停止维护和更新Netflix OSS项目,包括Eureka、Hystrix等组件,所以Spring Cloud Netflix也逐渐进入了维护模式。
    • 该项目包含了许多流行的 Netflix 组件,如Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API 网关)等。它们都是高度可扩展的、经过大规模实践验证的微服务组件。
  1. Spring Cloud Alibaba:
    • Spring Cloud Alibaba 是 Spring Cloud 的另一个子项目,与阿里巴巴的分布式应用开发框架相关。它提供了一整套与 Alibaba 生态系统集成的解决方案。
    • 该项目包括 Nacos(服务注册与发现、配置管理)、Sentinel(流量控制、熔断降级)、RocketMQ(消息队列)等组件,以及与 Alibaba Cloud(阿里云)的集成。它为构建基于 Spring Cloud 的微服务架构提供了丰富的选项。
    • 据说SpringCloud Alibaba项目的发起人已经跑路去了腾讯,并发起了SpringCloud Tecent项目,社区发展存在隐忧。

这三种方案有什么区别吗

特点

Dubbo

Spring Cloud Netflix

Spring Cloud Alibaba

开发语言

Java

Java

Java

服务治理

提供完整的服务治理功能

提供部分服务治理功能

提供完整的服务治理功能

服务注册与发现

ZooKeeper/Nacos

Eureka/Consul

Nacos

负载均衡

自带负载均衡策略

Ribbon

Ribbon\Dubbo负载均衡策略

服务调用

RPC方式

RestTemplate/Feign

Feign/RestTemplate/Dubbo

熔断器

Sentinel

Hystrix

Sentinel/Resilience4j

配置中心

Apollo

Spring Cloud Config

Nacos Config

API网关

Higress/APISIX

Zuul/Gateway

Spring Cloud Gateway

分布式事务

Seata

不支持分布式事务

Seata

限流和降级

Sentinel

Hystrix

Sentinel

分布式追踪和监控

Skywalking

Spring Cloud Sleuth + Zipkin

SkyWalking或Sentinel Dashboard

微服务网格

Dubbo Mesh

不支持微服务网格

Service Mesh(Nacos+Dubbo Mesh)

社区活跃度

相对较高

目前较低

相对较高

孵化和成熟度

孵化较早,成熟度较高

成熟度较高

孵化较新,但迅速发展