配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话构成SpringCloud的集合。
Eureka服务注册与发现(Eureka:怎么读?(拼音读法:yi rui ka,伊瑞咔))
Ribbon负载均衡(Ribbon:怎么读?(拼音读法:rui ben,瑞本))
LB,即负载均衡(Load Balance)
Feign服务调用Feign(Feign:怎么读?(拼音读法:fei en 飞嗯))
Zuul路由网关(Zuul:怎么读?(拼音读法:ru ou,入呕))
Hystrix断路器(Hystrix:怎么读?(中英结合读法:hei si tree ke si,黑丝tree克丝))
分布式CAP定理:一个分布式系统不可能同时满足C(一致性)、A(可用性)、P(容错性)。由于分区容错性P在分布式系统中是必须要保证的,因此我们只能在A和C之间进行权衡。
CAP是什么?
C(Consistency)强一致性
A(Availability)可用性
P(Partition tolerance)分区容错性
分布式Spring Cloud全家桶主要包括以下组件:
- Spring Cloud Config:用于集中管理微服务应用的配置信息,支持本地存储、Git存储、SVN存储等配置管理方式。
- Spring Cloud Bus:用于实现微服务之间的通信,通过轻量级消息代理连接分布式系统的节点,提供事件驱动的通信机制。
- Spring Cloud Gateway:基于Spring 5.0、Spring Boot 2.0和Project Reactor等技术开发的网关,提供简单、有效且统一的API路由管理方式。
- Spring Cloud OAuth2:用于保护微服务系统的安全,提供认证和授权管理功能。
- Spring Cloud Zipkin:提供分布式追踪功能,帮助开发者分析微服务间的调用关系和性能瓶颈。
- Spring Cloud Sleuth:提供服务链路追踪功能,可以追踪请求在分布式系统中的调用链路。
- Spring Cloud Stream:基于Spring Boot的消息驱动微服务开发框架,通过消息中间件实现微服务之间的解耦和通信。
- Spring Cloud Task:用于构建临时执行计划任务和作业的工作流。
- Spring Cloud Task Troubleshooting:用于故障排除和性能调试的解决方案。
- Spring Cloud Admin:用于管理和监控微服务应用的可视化工具。
用法:
- 配置管理:使用Spring Cloud Config作为配置中心,将配置信息存储在集中管理平台中,实现配置的动态刷新和统一管理。
- 通信机制:使用Spring Cloud Bus实现微服务之间的通信,通过消息代理连接分布式系统的节点,提供事件驱动的通信机制。
- API路由管理:使用Spring Cloud Gateway作为微服务的网关,实现简单、有效且统一的API路由管理方式,提供路由规则的动态配置和路由服务的自动注册与发现。
- 安全认证:使用Spring Cloud OAuth2实现微服务系统的安全认证和授权管理功能,提供用户认证和访问控制的安全机制。
- 分布式追踪:使用Spring Cloud Zipkin和Spring Cloud Sleuth实现分布式追踪功能,帮助开发者分析微服务间的调用关系和性能瓶颈,定位问题并进行优化。
- 消息驱动微服务:使用Spring Cloud Stream实现消息驱动的微服务开发框架,通过消息中间件实现微服务之间的解耦和通信。
- 临时任务和工作流:使用Spring Cloud Task构建临时执行计划任务和作业的工作流,支持任务的定时执行和触发执行。
- 管理和监控:使用Spring Cloud Admin作为微服务应用的可视化管理工具,实现对微服务应用的状态监控、日志管理和性能分析等功能。
总之,分布式Spring Cloud全家桶提供了一系列可扩展的组件,可以帮助开发者快速构建稳定、可靠的分布式微服务应用。通过合理地选择和使用这些组件,可以有效地提高开发效率、降低维护成本并提升系统的可扩展性和稳定性。