什么是SpringCloud?如何理解微服务架构

手写SpringCLoud项目地址
github:https://github.com/huangjianguo2000/spring-cloud-lightweight
gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh

1. 我们常说的Springcloud框架是什么?

Springcloud并不是指具体的某个框架,而是一系列遵循SpringCloud开发规范框架的集合。
Springcloud具备以下部分功能,但是这些功能都不是具体某个框架实现的,而是一些列中间件实现的,我们在实现这些功能的时候可以自由选取。

初学重点 :服务注册与发现,服务间通信,负载均衡

  1. 服务注册与发现(Service Discovery):Spring Cloud 提供了服务注册与发现的功能,使得各个微服务能够自动注册和发现其他服务,实现了服务之间的动态调用和通信。

  2. 负载均衡(Load Balancing): Spring Cloud 支持多种负载均衡策略,可以将请求均匀地分发到不同的微服务实例上,提高了系统的可用性和性能。

  3. 配置管理(Configuration Management): Spring Cloud 提供了集中式的配置管理,可以将微服务的配置信息集中管理,实现了配置的统一管理和动态刷新。

  4. 断路器模式(Circuit Breaker): Spring Cloud 提供了断路器模式的支持,可以防止故障蔓延,当某个微服务发生故障时,可以快速失败并提供降级处理。

  5. API 网关(API Gateway): Spring Cloud 允许开发者通过 API 网关来对外暴露微服务,可以实现路由、过滤、鉴权等功能。

  6. 分布式追踪(Distributed Tracing): Spring Cloud 集成了分布式追踪工具,可以对微服务之间的调用链进行追踪和监控。

  7. 服务容错(Service Resilience): Spring Cloud 提供了服务容错的机制,可以保护微服务免受不稳定的网络和资源故障的影响。

  8. 服务调用: 在微服务之间进行通信,是SpringCloud的核心。

2. 中间件选择

初学重点: Nacos->openfegin->gateway

  1. Eureka , Consul ,Nacos 作为服务注册与发现:Eureka 和 Consul 都是常用的服务注册与发现工具,可以让微服务实例自动注册和发现,实现服务之间的通信。
  2. Ribbon 或 Feign 作为负载均衡:Ribbon 是一个客户端负载均衡工具,Feign 则是一个声明式的 HTTP 客户端,它们可以帮助实现负载均衡,将请求分发到不同的微服务实例。
  3. Spring Cloud Config , Nacos作为配置管理:Spring Cloud Config 可以集中管理微服务的配置信息,可以使用 Git 等版本控制工具进行配置的管理和版本控制。
  4. Hystrix , sentine作为断路器:Hystrix 是一个实现断路器模式的库,可以帮助处理微服务之间的故障和延迟,防止故障蔓延。
  5. Zuul ,Spring Cloud Gateway 作为 API 网关:Zuul 和 Spring Cloud Gateway 都可以作为 API 网关,可以进行路由、过滤、鉴权等功能。
  6. Sleuth 和 Zipkin , skywalking 作为分布式追踪:Sleuth 可以实现微服务之间的调用链追踪,而 Zipkin 则是一个分布式追踪系统,可以对调用链进行监控和分析。
  7. Resilience4j , sentinel作为服务容错:Resilience4j 是一个轻量级的服务容错库,可以帮助实现服务的容错和降级处理。
  8. Spring Cloud Stream 和 Kafka 或 RabbitMQ 作为消息传递:Spring Cloud Stream 可以用于构建消息驱动的微服务,可以与 Kafka 或 RabbitMQ 集成来实现消息传递。
  9. Spring Boot 作为微服务的基础框架:Spring Boot 是 Spring Cloud 的基础,它提供了简化的配置和快速开发能力,可以用来构建微服务的基础。
3.SpringBoot和SpringCloud有啥关系?
可以简单这么理解。
多个SpringBoot项目组合成了SpringCloud。
单体项目就是一个SpringBoot项目。
微服务集群项目就是一堆SpringBoot项目。
4.如何理解微服务架构?
微服务就是很小的服务,一个服务只对应一个单一的功能,专注于做一件事。
微服务架构就是很多个微服务一起组合成做了一件很复杂的事情。

你可能感兴趣的:(手写SpringCloud,架构,spring,cloud,微服务)