01_springCloud基础知识
文章目录
- 一、Spring Cloud简介
- 二、微服务架构基础
- 三、服务发现与配置
- 四、服务调用与负载均衡
- 五、断路器
- 六、API网关
- 七、消息驱动
- 八、分布式事务
- 九、安全与监控
- 十、其他高级特性
一、Spring Cloud简介
- 定义:Spring Cloud是一个基于Spring Boot的提供工具集来快速构建分布式系统的框架。
- 核心功能:配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话和集群状态等。
- 应用场景:微服务架构下的分布式系统开发。
二、微服务架构基础
- 概念:微服务架构是一种将应用程序构建为一组小型、自治服务的方法,每个服务都运行在其独立的进程中,服务间通过轻量级通信机制(通常是HTTP API)进行通信。
- 特点:服务拆分、独立部署、自动化部署、服务治理等。
三、服务发现与配置
- 服务发现:
- Eureka:Netflix开源的服务发现组件,用于定位运行在AWS区域中的服务。
- Consul:HashiCorp公司推出的开源服务发现和配置管理服务,支持多数据中心。
- 配置管理:
- Spring Cloud Config:配置管理工具,支持使用Git或SVN存储配置内容,并可以使用Spring Cloud Bus通知各个配置客户端。
四、服务调用与负载均衡
- 服务调用:
- RestTemplate:Spring提供的用于同步客户端HTTP请求的模板工具类。
- Feign:声明式的Web服务客户端,简化了HTTP客户端的编写。
- 负载均衡:
- Ribbon:Netflix开源的负载均衡器,用于在微服务架构中进行客户端负载均衡。
五、断路器
- 概念:断路器模式是一种处理分布式系统延迟和容错的模式,它允许服务在调用链中的某个服务失败时,能够快速地失败并返回一个预设的响应,而不是长时间地等待服务响应。
- 实现:
- Hystrix:Netflix开源的断路器模式实现库,提供了隔离服务的访问点、停止跨服务的级联故障以及提供失败回退选项等功能。但请注意,Hystrix已进入维护模式,可以考虑了解其他替代方案如Resilience4j。
六、API网关
- 概念:API网关是一个处于客户端和服务器端之间的中间层,所有的外部请求都会先经过API网关,再由网关转发给后端的微服务。
- 实现:
- Zuul:Netflix开源的API网关组件,提供了动态路由、监控、弹性、安全等功能,但已进入维护模式。
- Spring Cloud Gateway:Spring Cloud官方推出的基于WebFlux的API网关,提供了路由转发、过滤等功能,并且可以与Spring Cloud生态紧密集成。
七、消息驱动
- Spring Cloud Stream:构建消息驱动微服务的框架,它基于Spring Framework为消息中间件提供了统一的抽象层,并简化了消息的发送和接收过程。
- Spring Cloud Bus:将分布式系统的节点与轻量级消息代理连接起来,可以用于广播状态更改事件(如配置更改)或其他管理指令。
八、分布式事务
- 概念:分布式事务是指在一个分布式系统中,涉及多个数据库或服务的事务。
- 实现:
- Seata:阿里巴巴开源的分布式事务解决方案,提供了AT、TCC、SAGA和XA事务模式。
九、安全与监控
- 认证与授权:
- OAuth2与JWT:用于实现微服务架构下的统一认证和授权。
- 监控与追踪:
- Sleuth与Zipkin:Sleuth为Spring Cloud应用提供了分布式追踪的解决方案,而Zipkin是一个开源的分布式追踪系统。
- Spring Boot Actuator:提供了对应用进行监控和管理的端点。
十、其他高级特性
- 服务治理:包括服务降级、限流、隔离等策略。
- 容器化与CI/CD:将Spring Cloud应用容器化(如使用Docker),并实现持续集成/持续部署(CI/CD)流程。
- 云原生支持:Spring Cloud与Kubernetes等云原生平台紧密集成,提供了丰富的工具和最佳实践。
这个提纲总结了Spring Cloud的基础知识,包括简介、微服务架构基础、服务发现与配置、服务调用与负载均衡、断路器、API网关、消息驱动、分布式事务、安全与监控以及其他高级特性。希望这个提纲能帮助你更好地理解和记忆Spring Cloud的相关知识点。如果你还有其他问题或需要进一步的解释,请随时告诉我!