1.了解SpringCloud吗,说一下他和SpringBoot的区别

  • Spring Boot(单兵作战)

    • 主要功能:自动装配、内嵌服务器、起步依赖。

    • 目标:让一个项目能独立、快速地跑起来。

  • Spring Cloud(集团作战)

    • 主要功能:服务发现(Eureka/Nacos)负载均衡(Ribbon/LoadBalancer)配置中心(Config/Nacos)断路器(Hystrix/Sentinel)网关(Gateway)

    • 目标:提供微服务集群所需的通信、监控和容错方案。

  • Spring Cloud 是基于 Spring Boot 实现的。没有 Spring Boot,Spring Cloud 就无法运行。

  • 在开发中,我们通常是在 Spring Boot 项目的基础上,引入 Spring Cloud 的相关 Starter 依赖,从而将其升级为一个微服务节点。

2.Spring Cloud Alibaba 了解吗?

简洁回答: “Spring Cloud Alibaba 是目前国内最主流的实现方案。它用 Nacos 替代了 Eureka/Config,用 Sentinel 替代了 Hystrix,用 DubboFeign 做远程调用。相比原生组件,它在性能和图形化界面上做得更好。”

3.用过哪些微服务组件?

1. 注册中心与配置中心:Nacos

  • 作用:解决“服务发现”和“统一配置”问题。

  • 话术

    “我使用 Nacos 作为注册中心和配置中心。它能自动管理所有服务的实例信息,并支持配置热更新,让我们不再需要手动修改每个服务的配置文件。”

2. 服务间调用:OpenFeign

  • 作用:解决“服务怎么找对方”的问题。

  • 话术

    “远程调用我用的是 OpenFeign。它通过声明式的接口调用方式,让我们调用远程服务就像调用本地方法一样简单,底层集成了负载均衡。”

3. 负载均衡:LoadBalancer / Ribbon

  • 作用:解决“请求分发给谁”的问题。

  • 话术

    “我通过 LoadBalancer 实现客户端负载均衡。当一个服务有多个实例时,它能根据轮询或随机策略,将请求均匀分配到不同的服务器上。”

4. 服务网关:Spring Cloud Gateway

  • 作用:解决“外部请求统一入口”的问题。

  • 话术

    “网关我选用 Gateway。它是系统的唯一入口,负责路由转发、权限校验、跨域处理以及统一的限流。它能保护内部微服务不直接暴露给外部。”

5. 熔断与限流:Sentinel / Hystrix

  • 作用:解决“服务雪崩”问题(自我保护)。

  • 话术

    “我使用 Sentinel 进行流量控制和熔断降级。当某个下游服务出现延迟或故障时,Sentinel 会迅速切断调用(熔断),防止整个微服务系统崩溃(雪崩)。”

4.负载均衡有哪些算法?

“在实际微服务中(如使用 Ribbon 或 LoadBalancer),默认通常是轮询或随机。 如果遇到机器性能不均衡,我会配置加权轮询;如果业务对 Session 有强依赖且没做分布式 Session,则会考虑 IP Hash。 像 Nginx 这种组件,还提供了公平插件 (Fair),根据响应时间动态分配,效果会更智能。”

5.如何实现一直均衡给一个用户?

???

6.介绍一下服务熔断

  1. 核心定义(一句话总结)

“服务熔断是一种过载保护机制。当某个下游服务出现故障或响应过慢时,为了防止整个调用链路被拖垮,上游服务会暂时切断对该服务的调用,直接返回一个预定义的失败响应(Fallback),从而保障整个系统的可用性。”

  1. 为什么要熔断?(解决雪崩效应)

“在微服务链路中,如果没有熔断机制,一个服务故障可能会导致所有调用它的线程被阻塞,最终耗尽系统资源,导致整个微服务集群崩溃,这就是服务雪崩。熔断器就像保险丝,在危险时通过‘跳闸’来保全大局。”

后面老子不看了

7.介绍一下服务降级

“服务降级是指在系统高并发局部故障的情况下,为了保证核心业务的稳定性,主动放弃非核心功能,通过返回一个简化的结果(如默认值、缓存数据或友好提示)来减轻系统负担的保护措施。”

  • 被动降级:由于下游服务超时、异常或被熔断了,为了不让调用者卡死,被迫执行降级逻辑。

  • 主动降级:在双 11 大促等流量高峰期,系统资源不足,开发人员主动关闭一些边缘功能(如:关闭排行榜、关闭评论、关掉非关键统计),将 CPU 和内存资源留给核心的“下单”和“支付”流程。