专项攻克-springcloud及其组件

文章目录

一、初识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,它们可以作为消息队列实现消息的传递和处理 。

相关推荐
Kripath_Rion3 小时前
带你速通计算机经典论文(一):分布式系统篇
分布式·后端·架构
砍材农夫4 小时前
物联网实战|Spring Boot MQTT平台 |emqx broker实战
spring boot·spring·spring cloud·mybatis
似璟如你4 小时前
Java 开发者的 Go 语法基础:从 0 开始快速上手 Go
java·开发语言·后端·golang·go·编程语言
Codelinghu5 小时前
AI 写代码越强,程序员越不能只懂代码
后端
卡卡敲码5 小时前
Skills 撞车了,Agent 怎么选
后端
羑悻5 小时前
周一早上三件事砸过来,我以为要延期,结果 AI 替我扛了一半!
后端
文艺理科生5 小时前
3 年,8 种方案,1 次重构:LangChain 记忆方案如何从混乱走向清晰
前端·后端·架构
Ai拆代码的曹操6 小时前
Agent 做错了怎么办?Self-Critique 机制拆解
后端·agent·ai编程
天性6 小时前
AgentScope Java 源码深读:一次请求如何触发工具、Middleware 和子 Agent
后端