Skip to content

微服务概念

  • 数服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。

  • 每个务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。

  • 每个服务都围绕着自身业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言工具对其进行构建。

微服务的五大组件

1. 注册中心:服务注册中心是微服务架构中的关键组件,它允许服务实例在启动时将自己的位置(通常是IP地址和端口号)注册到一个中心位置,同时服务消费者可以从注册中心查询到提供特定功能的服务实例的位置信息。

2. 负载均衡:在微服务架构中,负载均衡通常由API网关或服务注册中心提供。它确保请求均匀分布在所有可用的服务实例上,从而提高性能和可靠性。

3. 服务调用:解决“服务之间如何通信”的问题。通常指基于RPC(如gRPC, Dubbo)或RESTful API的通信框架,它简化了服务间的调用,并常与客户端负载均衡(如Ribbon)集成。

4. 服务熔断器:熔断器是一种防止系统过载的模式。它允许服务在遇到错误时暂时停止发送请求,从而避免系统崩溃。

5. 网关:API网关是充当微服务和客户端(如移动应用程序、Web 应用程序)之间的单一入口点。它负责路由请求到相应的微服务,处理安全性、身份验证和限流等跨领域关注点。

注意:

微服务不仅只有五大组件,还有其他组件。

五大组件是基石:它们是构建微服务架构的入门券和底线保障,解决了最核心的通信、治理和观测问题。

其他组件是增强器:它们是为了应对更高复杂度、更大规模、更特殊业务场景而存在的进阶能力,决定了系统的成熟度、稳定性和扩展性。

所以,正确的做法是:首先确保五大核心组件稳固可靠,然后根据业务发展阶段、团队规模和具体需求,逐步引入其他组件来完善你的微服务生态系统。 从一个只有五大组件的简单架构开始,远比一开始就追求“大而全”的复杂架构要明智得多。

微服务组件进化史

在早期Spring Cloud的五大组件通常指的是Eureka配套的一些组件。随着Spring Cloud Alibaba的兴起,我们项目中也融入了一些阿里巴巴的技术组件。

组件早期组件Alibaba新组件
注册中心EurekaNacos
负载均衡RibbonRibbon
服务调用FeignFeign(OpenFeign)
服务熔断器HystrixSentinel
网关Zuul/GatewayGateway

注意:

Nacos是注册中心+配置中心的组合(Nacos = Eureka + Config + Bus)。

RibbonSpring Cloud Alibaba里已经自动集成到了OpenFeign

FeignSpring Cloud Alibaba里实际上是OpenFeign,是由Spring Cloud社区在原生Feign基础上二次开发和完善的产物。在原生基础上,增加了与负载均衡器、熔断器等组件的自动集成,提供与Spring Boot框架无缝集成的“开箱即用”体验。

页脚:版权前显示的信息