文章目录一、初识springcloud二、在一个请求中springcloud各组件的作用各组件的常见平替中间件有哪些API网关Gateway/Zuul注册中心Nacos/Zookeeper动态配置中心Spring Cloud Config / Nacos Config负载均衡Spring Cloud LoadBalancer/Ribbon/Feign服务远程调用Feign/OpenFeign/Dubbo/RestTemplate熔断、降级、限流组件Sentinel分布式服务链路跟踪Sleuth Zipkin安全Security消息队列/消息总线SpringCloud Stream一、初识springcloudspringCloud是一套微服务组件 常用的EurekaRibbonHystrixFeignGatewayConfigBus消息总线等等。Spring Cloud 提供了配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选分布式会话和集群状态管理等一系列的解决方案二、在一个请求中springcloud各组件的作用各组件的常见平替中间件有哪些请求用户浏览器 / 客户端 →网关 (Spring Cloud Gateway / )→ 服务发现 (Nacos/Eureka) 获取服务实例 → 负载均衡 (LoadBalancer) → Feign/RestTemplate 远程调用订单服务 → Sentinel/Resilience4j 熔断保护 → 调用库存服务同时读取配置中心配置SkyWalking 做全链路追踪。面试问题一次请求进来SpringCloud 各个组件执行顺序答请求先到达Gateway 网关做鉴权、限流、路由网关去Nacos 注册中心查询目标服务实例LoadBalancer做负载均衡选出服务节点通过OpenFeign发起远程 http 调用Sentinel做熔断降级保护防止雪崩Sleuth生成 traceId把调用日志上报链路追踪组件服务启动的时候会从Nacos Config拉取远端配置。Spring Cloud组件在单个请求中发挥着不同的作用以下是详细介绍及常见平替中间件API网关Gateway/Zuul位置网关是请求入口所有外部请求内部API的第一站。作用负责对请求进行路由转发、鉴权、认证、限流、黑名单、请求日志、跨域、参数过滤等操作。举例它接收客户端的请求根据路由规则将请求转发到相应的服务。例如当用户访问一个电商网站网关会根据请求的URL将请求转发到商品服务、订单服务等。替代Spring Cloud Gateway是新一代的网关组件使用Netty作为底层通信框架。Zuul是较早的网关组件。常见平替中间件有Nginx、Kong它们在高并发场景下有更好的性能表现。注册中心Nacos/Zookeeper位置所有微服务启动注册网关、调用方查询实例列表作用1. 微服务启动主动向注册中心注册自己 IP 端口2. 服务消费者主动从注册中心拉取可用服务实例列表3.注册中心自身而言会定时健康检查剔除宕机服务节点。举例当一个用户请求调用某个服务时服务消费者会通过服务发现组件找到提供该服务的实例地址。平替Eureka已经停止维护。动态配置中心Spring Cloud Config / Nacos Config位置服务启动 / 运行时拉取配置配置热更新作用服务启动时会从配置中心获取配置信息并且在配置发生变更时能动态更新服务的配置。比如当服务的数据库连接信息发生改变配置中心可以及时将新的配置推送给服务。平替中间件有Apollo、Nacos它们提供了更丰富的配置管理功能如配置的版本管理、灰度发布等 。负载均衡Spring Cloud LoadBalancer/Ribbon/Feign作用负载均衡组件在请求时将请求按某种规则轮询、随机、权重分配到服务实例上以提高系统的可用性和性能。举例负载均衡组件会根据一定的算法如轮询、随机等选择商品服务的其中一个实例来处理请求。平替1方案1网关层负载均衡Gateway Nginx/Kong网关侧做 LB客户端不需要对请求进行更高级的负载均衡策略配置 。2方案2K8s Servicek8s 环境直接用 Service 负载均衡不需要 LoadBalancer。服务远程调用Feign/OpenFeign/Dubbo/RestTemplate位置微服务之间内部 http 调用作用基于接口注解封装 HTTP 请求简化微服务之间调用底层封装 RestTemplate集成 LoadBalancer 负载均衡。平替组件RestTemplate原生 http 模板手写 http、 WebClientSpring 响应式非阻塞 http 客户端、DubboRPC 调用TCP 二进制协议性能高于 HTTP‑Feign对比Feign 是 HTTPDubbo 是 RPCB2B 交易系统对性能要求高可以 Dubbo。熔断、降级、限流组件Sentinel作用熔断下游服务大量超时异常直接熔断不再继续调用降级接口故障返回兜底数据流量控制QPS 限流热点参数限流举例例如当商品服务出现异常时熔断器会切断对商品服务的请求并返回一个默认的响应。平替1方案1Gateway 限流网关层限流粗粒度。2方案2Hystrix已停止维护。分布式服务链路跟踪Sleuth Zipkin位置全链路贯穿网关、各个微服务。作用服务跟踪组件在请求中记录请求的调用链路信息方便开发人员进行问题排查和性能优化。它会为每个请求生成一个唯一的跟踪ID在请求的各个服务之间传递。举例当一个请求经过多个服务时服务跟踪组件可以记录每个服务的调用时间、调用顺序等信息。平替SkyWalking。安全Security作用对请求进行身份验证和授权确保只有合法的用户或服务才能访问系统资源。举例当用户请求访问一个需要登录的页面时安全组件会验证用户的身份信息。平替常见平替中间件有OAuth 2.0、JWTJSON Web Token它们提供了更灵活的身份验证和授权机制 。消息队列/消息总线SpringCloud Stream作用在微服务之间传递配置变更等消息。举例当全局配置发生改变时消息总线会通知所有服务重新加载配置比如配置中心的配置发生变更时消息总线会将变更信息广播给所有相关的服务。平替RabbitMQ、Kafka、RocketMQ它们可以作为消息队列实现消息的传递和处理 。