文章目录
一、初识springcloud
springCloud是一套微服务组件, 常用的Eureka,Ribbon,Hystrix,Feign,Gateway,Config,Bus(消息总线)等等。

Spring Cloud 提供了配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选分布式会话和集群状态管理等,一系列的解决方案
Config:配置管理工具,支持 git 存储配置实现应用外部配置化,支持远程客户端读取配置并根据初始化参数启动项目
Netflix:核心组件
Eureka:服务治理组件,可以注册服务接口中心
Hystrix:容错管理组件,实现断路器模式,服务依赖中出现的延迟和故障提供容错性
Ribbon:客户端负载均衡服务调用组件
Feign:基于 Hystrix 和 Ribbon 声明式服务调用组件
Zuul:提供路由,访问过滤
Archaius:外部化配置参数组件
Bus:事件消息总线,用于将服务和服务实例与分布式消息传递连接在一起的事件总线。触发后续作业的业务联动性
Cluster:针对 Zookeeper、Redis、Hazelcast、Consul 的选举算法和通用状态模式的实现
CloudFoundry:与 pivotalCloudFoundry 的整合支持
Consul:服务发现与配置管理工具
Stream:通过 Redis、RabbitMQ、Kafka 实现消息微服务,通过消息队列的形式生产和消费消息
Security:安全管理组件
Sleuth:SpringCloud 分布式跟踪,兼容Zipkin、HTrace和基于日志的跟踪(如ELK)。
Zookeeper:基于 Zookeeper 的服务发现和配置管理组件
Starts:基础组件,基于 SpringBoot 风格的基础依赖模块
二、在一个请求中,springcloud各组件的作用,各组件的常见平替中间件有哪些
Spring Cloud各组件在单个请求中发挥着不同的作用,以下是详细介绍及常见平替中间件:
服务发现(Eureka)
在单个请求中,服务发现组件负责让服务提供者将自身服务信息注册到注册中心,服务消费者从注册中心获取服务提供者的地址信息。这样,服务消费者就能知道向哪里发送请求。例如,当一个用户请求调用某个服务时,服务消费者会通过服务发现组件找到提供该服务的实例地址。常见平替中间件有Consul、Zookeeper,它们同样可以实现服务的注册与发现功能 。
配置中心(Config)
配置中心在请求过程中,为服务提供统一的配置管理。服务启动时会从配置中心获取配置信息,并且在配置发生变更时,能动态更新服务的配置。比如,当服务的数据库连接信息发生改变,配置中心可以及时将新的配置推送给服务。常见平替中间件有Apollo、Nacos,它们提供了更丰富的配置管理功能,如配置的版本管理、灰度发布等 。
网关(Gateway/Zuul)
网关是请求的入口,负责对请求进行路由、过滤、限流等操作。它接收客户端的请求,根据路由规则将请求转发到相应的服务。例如,当用户访问一个电商网站,网关会根据请求的URL将请求转发到商品服务、订单服务等。Spring Cloud Gateway是新一代的网关组件,使用Netty作为底层通信框架;Zuul是较早的网关组件。常见平替中间件有Nginx、Kong,它们在高并发场景下有更好的性能表现。
负载均衡(Ribbon/Feign)
负载均衡组件在请求时,将请求均匀地分配到多个服务实例上,以提高系统的可用性和性能。Ribbon是客户端负载均衡器,Feign是声明式的HTTP客户端 ,它集成了Ribbon的负载均衡功能。例如,当有多个商品服务实例时,负载均衡组件会根据一定的算法(如轮询、随机等)选择一个实例来处理请求。常见平替中间件有Nginx、HAProxy,它们可以作为服务器端负载均衡器,对请求进行更高级的负载均衡策略配置 。
熔断器(Hystrix)
熔断器在请求过程中起到保护系统的作用。当某个服务出现故障或响应时间过长时,熔断器会自动熔断该服务的请求,避免故障扩散。例如,当商品服务出现异常时,熔断器会切断对商品服务的请求,并返回一个默认的响应。常见平替中间件有Resilience4j,它是一个轻量级的容错库,提供了丰富的熔断、限流等功能 。
服务跟踪(Sleuth)
服务跟踪组件在请求中记录请求的调用链路信息,方便开发人员进行问题排查和性能优化。它会为每个请求生成一个唯一的跟踪ID,在请求的各个服务之间传递。例如,当一个请求经过多个服务时,服务跟踪组件可以记录每个服务的调用时间、调用顺序等信息。常见平替中间件有Zipkin、Jaeger,它们可以实现更强大的分布式跟踪功能 。
安全(Security)
安全组件在请求中负责对请求进行身份验证和授权。它可以确保只有合法的用户或服务才能访问系统资源。例如,当用户请求访问一个需要登录的页面时,安全组件会验证用户的身份信息。常见平替中间件有OAuth 2.0、JWT(JSON Web Token),它们提供了更灵活的身份验证和授权机制 。
消息总线(Bus)
消息总线在请求过程中用于在微服务之间传递配置变更等消息。当配置中心的配置发生变更时,消息总线会将变更信息广播给所有相关的服务。例如,当全局配置发生改变时,消息总线会通知所有服务重新加载配置。常见平替中间件有RabbitMQ、Kafka,它们可以作为消息队列实现消息的传递和处理 。