SpringCloud主要是为各个微服务技术协同工作提供了一个平台。主要的技术有:注册中心、配置中心、分布式事务、远程调用、负载均衡、网关、链路追踪、容错机制。每个技术都会对应一两个框架,整体偏记忆为主,分布式事务需要理解的内容多一些
1.架构相关
(1)微服务的理解
微服务是一种软件架构风格,将一个复杂的应用拆分成多个单一职责的服务。保证高内聚低耦合
(2)分布式和微服务
分布式:由多台计算机或节点组成,通过网络进行通信协作。各个节点共同完成一个或多个任务
微服务:将一个服务,拆分成多个独立松耦合的服务单元,方便各自独立管理部署运行
(3)SpringCloud组成
注册中心:Nacos、Eureka、Consul、Zookeeper
配置中心:SpringCloud Config、Nacos的配置中心
服务调用:Feign、OpenFeign
网关:SpringCloud Gateway、Zuul
服务容错:Sentinel、Hystrix
负载均衡:Robbin、LoadBalance
链路追踪:Slueth+Zipkin、SkyWalking、Jaeger
(4)SpringCloud优缺点
优点:集成度高、生态丰富、可拓展性强、功能全面
缺点:学习曲线陡峭、有一定性能开销、版本多更新快
2.配置中心
(1)什么是配置中心,有哪些配置中心
配置集中化管理的工具。支持动态更新配置和自动分发配置
- SpringCloud Config,Spring官方提供的配置管理工具,支持从Git和SVN加载配置
- Nacos,不仅是注册中心,也提供了配置管理的功能
- Apollo,携程开源,支持实时更新和权限管理
- Consul,同Nacos一样,又是配置中心又是注册中心
- Zookeeper,同Nacos
- Etcd,分布式键值存储中心,常用于K8S
(2)Nacos配置中心原理
- 配置的存储:采用数据库存储配置。多副本存储保证了高可用
- 配置的推送机制:采用gRPC的长连接来实时推送配置,当发现配置更改时,会向所有客户端推送。还采用断线重连机制
- 配置的缓存,每个节点都有配置的缓存,保证在配置中心宕机时依然可用