微服务的五大组件好多都停用了,还需要学吗?

如图,微服务的五大组件:
1.Eureka:注册中心(停用)
2.Zuul:服务网关(停用)
3.Ribbon:负载均衡(停用)
4.Feign:服务调用(未停用)
5.Hystix:熔断器(停用)
你问我在哪里知道的停用?

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
</dependency>

我通过这个看的,不在里面的组件我想应该就是被spring放弃了。所以这些组件还有必要学吗?

阅读 1k
avatarAI BotBETA

虽然你提到的几个微服务组件(Eureka、Zuul、Ribbon、Hystrix)在Spring Cloud的某些版本或官方文档中可能不再作为推荐或默认选项,但这并不意味着这些技术已经完全被废弃或不值得学习。实际上,学习这些组件仍然有其价值和意义,原因如下:

  1. 技术积累:了解这些组件可以帮助你更好地理解微服务架构的核心概念,如服务注册与发现、服务网关、负载均衡和断路器模式。这些概念在微服务架构中至关重要,无论使用何种技术栈实现。
  2. 替代方案:虽然这些组件可能不再是Spring Cloud的首选,但Spring Cloud社区和其他技术栈提供了许多替代方案。学习这些组件可以让你更容易地迁移到新的解决方案,因为很多替代方案都保留了原有组件的设计思想和API的相似性。
  3. 历史项目维护:如果你需要维护或扩展现有的使用这些组件的项目,那么学习它们将是必要的。
  4. 技术广度:作为一名开发人员,拥有广泛的技术栈知识可以增加你的市场竞争力。即使某些技术不再流行,了解它们仍然可以让你在面试或项目中展现出更全面的能力。
  5. 学习和成长:学习新技术总是有益的,即使这些技术最终会被新的技术所取代。通过学习和实践这些组件,你可以培养解决问题的能力、系统设计和架构思维。

对于你提到的替代方案,Spring Cloud已经提供了许多新的组件来替代这些停用的组件,例如:

  • Eureka 的替代方案可以是 ConsulNacosZookeeper
  • Zuul 已经被 Spring Cloud Gateway 取代,后者提供了更强大的路由和过滤功能。
  • RibbonFeign 的功能现在可以被 Spring Cloud LoadBalancerSpring WebFlux(或 Spring RestTemplate 的替代方案)结合使用来实现。
  • Hystrix 的断路器功能现在可以通过 resilience4jSpring Retry 等库来实现。

因此,虽然这些组件可能不再是首选,但学习它们仍然是有价值的,并且可以帮助你更好地理解和实现微服务架构。

1 个回答

这些组件停用是有原因的,然后并非指的它们所提供的功能没有意义,你要学习新的替代组件:

以下是对上述微服务五大组件中已停用部分的原因分析及替代品介绍:

一、Eureka(注册中心,停用原因及替代品)

停用原因:

  1. 社区活跃度下降:随着时间的推移,Eureka 的维护和更新逐渐减少,社区对其关注度降低。
  2. 功能局限性:在一些复杂的微服务架构场景下,Eureka 可能在高可用、动态配置等方面表现出一定的局限性。

替代品:

  1. Consul:Consul 是一个功能强大的服务发现和配置工具。它提供了服务注册与发现、健康检查、键值存储等功能。Consul 具有高可用、易扩展的特点,适用于大规模的微服务架构。
  2. Nacos:Nacos 既可以作为服务注册中心,又可以作为配置中心。它支持动态服务发现、服务配置管理和服务元数据管理。Nacos 具有易于使用、性能高的优势,并且在国内得到了广泛的应用。

二、Zuul(服务网关,停用原因及替代品)

停用原因:

  1. 性能问题:随着微服务架构的不断发展,Zuul 在处理大量请求时可能会出现性能瓶颈。
  2. 功能单一:相比一些新的服务网关技术,Zuul 的功能相对较为单一,缺乏一些高级特性。

替代品:

  1. Spring Cloud Gateway:它是基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术实现的新一代服务网关。Spring Cloud Gateway 具有高性能、低延迟的特点,并且支持多种路由规则和过滤器功能。
  2. Kong:Kong 是一个开源的、可扩展的 API 网关和微服务管理平台。它提供了强大的路由、负载均衡、安全等功能,可以与多种微服务框架集成。

三、Ribbon(负载均衡,停用原因及替代品)

停用原因:

  1. 功能整合:在新的微服务架构中,负载均衡功能往往被整合到其他组件中,以实现更高效的服务调用和管理。
  2. 技术更新:随着技术的不断发展,出现了一些更先进的负载均衡技术和解决方案。

替代品:

  1. Spring Cloud LoadBalancer:它是 Spring Cloud 体系中的负载均衡组件,与 Spring Cloud 其他组件无缝集成。Spring Cloud LoadBalancer 提供了多种负载均衡策略,可以根据实际需求进行选择。
  2. Kubernetes Service:在 Kubernetes 环境中,服务的负载均衡可以通过 Kubernetes Service 来实现。Kubernetes Service 具有自动发现、动态调整等功能,能够有效地管理微服务的负载均衡。

四、Hystix(熔断器,停用原因及替代品)

停用原因:

  1. 功能集成:类似的功能逐渐被集成到其他组件中,以提供更统一的微服务治理解决方案。
  2. 技术演进:新的容错和故障处理机制不断出现,Hystix 在某些方面可能无法满足现代微服务架构的需求。

替代品:

  1. Resilience4j:Resilience4j 是一个轻量级的容错库,提供了断路器、限流器、重试机制等功能。它可以与 Spring Boot 等框架集成,并且具有良好的性能和可扩展性。
  2. Sentinel:Sentinel 是阿里巴巴开源的流量控制和熔断降级组件。它提供了丰富的流量控制规则、熔断策略和系统保护功能,适用于大规模的微服务架构。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏