微服务架构与 Spring Cloud Alibaba

共 64 题
#

1. Nacos、Sentinel、Seata 与 RocketMQ 组合使用时,配置、注册和事务故障应由哪些独立降级策略处理

A 各中间件的降级策略应相互独立,避免局部故障级联放大 ✓ 正确答案
B 配置中心故障时注册中心也应停止服务,避免状态不一致
C 四个中间件应共享同一个降级开关,统一切换
D 降级策略应优先保证配置一致性,牺牲可用性
#

2. Spring Cloud Alibaba Nacos Config 在 K8s 动态配置下 Spring Boot 4.0 @RefreshScope 的热更新延迟

A 配置变更后立即生效,无延迟
B 热更新只刷新被 @Value 注入的字段,不涉及 Bean
C 延迟由配置感知、事件触发与 Bean 重建三环节共同决定 ✓ 正确答案
D K8s 环境下配置变更不会产生任何额外延迟
#

3. Spring Cloud Alibaba Nacos 与 Eureka 2.x 停止维护后,在 Spring Boot 4.0 中的迁移路径

A 可采用双注册过渡期,逐步验证灰度后再下线 Eureka ✓ 正确答案
B 迁移时只需替换依赖,无需关心 instanceId 与 namespace 映射
C 必须一次性切换,不支持双注册过渡
D Eureka 停维后 Spring Boot 4.0 仍强制使用 Eureka
#

4. Spring Cloud Alibaba Seata 在 Spring Boot 4.0 中使用 AT 模式与 Spring @Transactional 的事务悬挂检测

A 全局事务超时与分支锁冲突检测是检测悬挂的关键手段 ✓ 正确答案
B 悬挂事务会自动释放全局锁,无需任何机制
C @GlobalTransactional 与 @Transactional 的拦截顺序无关紧要
D 悬挂事务只影响性能,不影响数据一致性
#

5. Spring Cloud Alibaba Sentinel 1.8.8 与 Resilience4j 2.x 在 Spring Boot 4.0 中功能对比与选型

A Resilience4j 原生提供动态规则推送与控制台
B 两者在 Spring Boot 4.0 中集成方式完全一致
C Sentinel 具备流控、熔断、系统自保护等一站式能力,且支持动态规则下发 ✓ 正确答案
D Sentinel 是纯函数式库,不含控制台
#

6. Spring Cloud Alibaba 在 Spring Boot 3.5+ 中对 Jakarta EE 10 的迁移与 API 兼容性

A 业务代码无需改动,javax 命名空间自动兼容
B Jakarta EE 10 仅影响配置,不影响依赖库
C Spring Cloud Alibaba 的注解 API 会彻底改变
D `javax.servlet.*` 需迁移为 `jakarta.servlet.*`,并升级容器 ✓ 正确答案
#

7. Spring Cloud Alibaba 在 Spring Boot 4.0 + 虚拟线程下,Sentinel 调用链上下文传递如何保证

A 虚拟线程与平台线程的 ThreadLocal 语义完全一致,无需处理
B 虚拟线程下应改用显式 entry/exit 或 ScopedValue 传递上下文 ✓ 正确答案
C Sentinel 上下文与线程无关,天然安全
D 虚拟线程场景下 Sentinel 无法使用
#

8. Spring Cloud Alibaba 在 Spring Boot 4.0 中整合 SkyWalking 与 OpenTelemetry 的链路追踪兼容

A 两者协议相同,可直接互通
B Spring Boot 4.0 只支持 SkyWalking,不支持 OTel
C 应用必须同时部署两套 agent 才能兼容
D 可通过 OTLP 接收器或 SkyWalking 导出器实现数据互通 ✓ 正确答案
#

9. Spring Cloud Alibaba 的 schedx 分布式任务调度

A 提供任务注册、分布式调度、分片路由与失败重试能力 ✓ 正确答案
B 是单机定时任务框架,仅支持本地执行
C schedx 与 Nacos、Sentinel 完全无关
D 不支持任务超时与幂等控制
#

10. 分布式 ID 生成方案(雪花算法、号段模式、UUID)在微服务中如何选型,时钟回拨、趋势递增与存储友好性如何权衡

A UUID 对存储最友好且趋势递增
B 雪花算法依赖时钟,时钟回拨会导致 ID 重复或乱序 ✓ 正确答案
C 号段模式完全依赖机器时钟
D 三种方案都无需任何协调
#

11. 升级 Spring Boot、Spring Cloud 与 Spring Cloud Alibaba 时,如何根据发布列车和兼容矩阵制定验证顺序

A 三个组件可随意升级,互不约束
B 升级只需看 Spring Cloud Alibaba 版本即可
C 应先查兼容矩阵,再按 Spring Boot→Spring Cloud→Spring Cloud Alibaba 顺序逐级升级验证 ✓ 正确答案
D 升级后无需依赖树检查
#

12. 在 Kubernetes 已提供服务发现时继续使用 Nacos 有何收益与重复治理成本,如何选择单一事实源

A 应明确单一事实源,将 Pod 级连通与业务治理路由分工 ✓ 正确答案
B 两套服务发现必然冲突,必须二选一
C K8s 的服务发现一定优于 Nacos
D 双服务发现不会产生任何治理成本
#

13. 在 Spring Cloud Alibaba 微服务中实现统一异常处理与 Sentinel 熔断降级联动

A 应通过 @RestControllerAdvice 与全局 BlockExceptionHandler 将限流熔断统一映射到标准错误码 ✓ 正确答案
B BlockException 应当作普通业务异常处理
C 降级响应不需要可观测
D 业务异常与限流异常应返回完全相同的错误码
#

14. 微服务拆分后分布式数据一致性有哪些总体方案,本地消息表、TCC、Saga 的选型路径如何依据一致性与复杂度决定

A 所有场景都应选强一致的 2PC
B Saga 提供强隔离性
C TCC 无侵入,适合任何业务
D 本地消息表适合能接受异步最终一致的场景,复杂度低 ✓ 正确答案
#

15. 微服务接口幂等性如何设计,去重表、幂等 Token 与状态机三种方案分别适用什么场景、如何防范并发重放

A 去重表依赖数据库唯一约束,token 依赖 SETNX 原子占用 ✓ 正确答案
B 先查后插的校验方式足以防止并发重放
C 状态机方案不依赖状态字段
D 三种方案互斥,不能组合使用
#

16. 微服务的反模式(Distributed Monolith)

A 分布式单体比传统单体更易维护
B 共享数据库与共享库是分布式单体的典型表现 ✓ 正确答案
C 服务间同步调用越多越算是健康的微服务
D 分布式单体获得了独立部署的能力
#

17. 微服务的 12-Factor App 原则

A 配置应硬编码在代码中
B 应用实例应保持会话状态以便复用
C 日志应写入本地文件而非标准输出
D 进程应保持无状态,配置通过环境变量注入 ✓ 正确答案
#

18. 微服务的 API Gateway(Spring Cloud Gateway/Kong/APISIX)

A Spring Cloud Gateway 基于 Servlet 阻塞模型
B 网关可承担路由、鉴权、限流、灰度等统一治理职责 ✓ 正确答案
C Kong/APISIX 只支持 Java 插件
D 网关应保持有状态以支持会话
#

19. 微服务的去中心化与"smart endpoints and dumb pipes"

A 管道应承担协议转换与业务编排
B 业务逻辑应集中在 ESB 中
C 智能端点负责业务逻辑,管道只做简单消息传递 ✓ 正确答案
D 该原则要求管道必须具备智能
#

20. 微服务的可移植性(Cloud Native Buildpacks)

A 需要开发者手写 Dockerfile 才能构建
B 自动探测语言依赖并生成可复现的 OCI 镜像 ✓ 正确答案
C 只支持 Java 语言
D 构建结果不可复现
#

21. 微服务的可观测性(Metrics/Logs/Traces)

A Traces 用于定位一次请求在服务链路上的环节 ✓ 正确答案
B Metrics 用于记录事件详情,Logs 用于量化告警
C 三大支柱相互独立,无需关联
D 日志即可满足所有可观测性需求
#

22. 微服务的多语言栈(Polyglot)的取舍

A 多语言栈一定能降低运维成本
B 多语言栈无需统一通信协议
C 多语言栈带来技术自由,但也增加运维与共享成本 ✓ 正确答案
D 多语言栈能保证所有服务性能最优
#

23. 微服务的容错(Resilience4j/Hystrix/Sentinel)

A Hystrix 是当前主流且持续维护的熔断库
B Sentinel 不支持限流
C Resilience4j 提供重试、熔断、限流、舱壁等可组合能力 ✓ 正确答案
D 容错只需重试,无需隔离
#

24. 微服务的文档(OpenAPI/Swagger)

A 文档应由人工维护,与实现解耦
B Swagger 只能用于调试,不能作为契约
C 文档在生产环境应无条件开放
D OpenAPI 是描述 REST API 的标准,可自动化生成并校验契约 ✓ 正确答案
#

25. 微服务的服务发现(DNS/注册中心)

A DNS 服务发现能提供实例健康检查与权重等精细信息
B DNS 服务发现不存在任何缓存延迟
C 注册中心服务发现支持健康检查、权重、元数据与灰度 ✓ 正确答案
D 服务发现只有客户端发现一种
#

26. 微服务的演进(Microservices 2.0)

A 强调进一步拆分服务,越多越好
B 2.0 与 1.0 无本质区别
C 2.0 放弃了模块化,全部拆成独立服务
D 通过 Service Mesh 与平台化把横切能力下沉,让业务无感 ✓ 正确答案
#

27. 微服务的版本管理(API Versioning)

A 删除字段属于兼容变更,无需升版本
B 版本管理只对公网 API 有意义
C 版本越多越好,无需废弃策略
D URL 路径版本、请求头版本、查询参数版本是常见方式 ✓ 正确答案
#

28. 微服务的边界划分(业务域/团队/数据)

A 应按技术分层拆分为服务
B 边界应依据业务域、团队与数据所有权划分 ✓ 正确答案
C 多个服务可共享同一个数据库表
D 边界划分应频繁变动以保持灵活
#

29. 微服务的边车(Sidecar)与 Service Mesh(Istio/Linkerd)

A 控制面由所有 Sidecar 组成,负责流量处理
B Sidecar 与应用生命周期无关
C Service Mesh 只能用于 Java 应用
D 数据面处理流量,控制面负责配置下发与证书管理 ✓ 正确答案
#

30. 微服务的部署与发布策略(蓝绿/金丝雀/滚动)如何选择,发布安全与回滚如何保障?

A 蓝绿部署需双倍资源但回滚快 ✓ 正确答案
B 金丝雀部署一次性全量切换
C 滚动部署期间新老版本不存在并存
D 发布无需考虑数据库兼容性
#

31. 微服务的链路追踪(Sleuth/Zipkin/Jaeger)

A Zipkin 负责生成 TraceID
B TraceID 用于标识一次请求,SpanID 用于标识单个服务调用 ✓ 正确答案
C 链路追踪只适用于单体应用
D 上下文无需跨服务传播
#

32. 微服务调用链如何通过 Micrometer Observation 贯通网关、Feign、消息和数据库的追踪上下文

A TraceID 无法跨组件传播
B Observation 只能用于 Metrics,不能用于 Traces
C 需要为每个组件手写埋点
D 各组件(网关/Feign/消息/数据库)自动生成 span 并共享 TraceContext ✓ 正确答案
#

33. 网关与服务侧都执行限流熔断时,如何划分全局流量保护和实例自保护的职责

A 网关负责实例自保护,服务侧负责全局防护
B 两级限流阈值完全一致即可
C 网关做全局入口保护,服务侧做实例自保护,阈值统筹设计 ✓ 正确答案
D 服务侧无需限流,依赖网关即可
#

34. OpenFeign 与 Spring Cloud LoadBalancer 同时重试时如何避免重试相乘,并保持总请求截止时间

A 总截止时间会干扰重试,应禁用
B 重试次数越多越安全
C 重试无需考虑幂等性
D 两层重试叠加会放大请求次数,应限定重试维度与截止时间 ✓ 正确答案
#

35. Spring Cloud Alibaba Dubbo 3.3 与 Spring Boot 4.0 集成时 Triple 协议 HTTP/2 性能基准

A Triple 与 Dubbo2 协议完全相同
B Triple 不支持流式传输
C Triple 基于 HTTP/2 + Protobuf,支持多路复用并与 gRPC 互通 ✓ 正确答案
D Triple 无法承载 Dubbo 的治理能力
#

36. Spring Cloud Alibaba 与 Apache Dubbo 在 RPC 协议(Triple/Dubbo2)

A Dubbo2 协议基于 HTTP/2 + Protobuf
B Dubbo2 协议是自定义二进制协议,Triple 基于 HTTP/2 + Protobuf ✓ 正确答案
C Triple 协议不支持跨语言
D Dubbo2 协议可观测性优于 Triple
#

37. Spring Cloud Alibaba 与 Spring Cloud LoadBalancer 的边界

A Nacos 负责实例选择,LoadBalancer 负责实例收集
B Nacos 提供实例列表,LoadBalancer 负责从列表中选实例 ✓ 正确答案
C 两者职责重叠,都需要实现负载均衡
D LoadBalancer 从注册中心获取实例完成发现
#

38. Spring Cloud Alibaba 与 Spring Cloud Netflix 的差异

A 两者组件完全等价
B Nacos 用于熔断,Sentinel 用于注册
C Ribbon 是 Alibaba 的负载均衡组件
D Netflix 组件全面停维,Alibaba 组件提供替代与额外能力 ✓ 正确答案
#

39. Spring Cloud Alibaba 与 Spring Cloud OpenFeign 的协作

A OpenFeign 直接解析服务实例,不依赖注册中心
B Nacos 负责 HTTP 编解码
C OpenFeign 声明调用,Nacos 提供实例,LoadBalancer 选实例,Sentinel 熔断 ✓ 正确答案
D Sentinel 负责服务发现
#

40. Spring Cloud Alibaba 的 @NacosPropertySource/@NacosValue 在配置动态刷新的实现

A @NacosValue 刷新会重建整个 Bean
B @NacosValue 只能注入静态配置
C @NacosValue 支持 autoRefreshed 字段级刷新,无需重建 Bean ✓ 正确答案
D @NacosPropertySource 用于定义单个字段
#

41. Spring Cloud Alibaba 集成 RocketMQ 的要点,事务消息、顺序消息与延迟消息在 Spring 中的使用,与原生 RocketMQ API 的差异如何?

A 事务消息发送成功后立即对消费者可见
B 延迟消息只能通过定时任务实现
C 顺序消息不需要队列路由
D 事务消息先发半消息,本地事务成功后 commit 并对消费者可见 ✓ 正确答案
#

42. Spring Cloud Alibaba 的 cloud-native 诊断,如何用 Actuator、Arthas 与链路追踪定位容器化部署下的性能与配置问题?

A Arthas 用于暴露健康端点
B 链路追踪用于查看 GC 情况
C Actuator 提供健康/指标/配置端点,链路追踪定位瓶颈,Arthas 现场诊断 JVM ✓ 正确答案
D 容器化部署无需考虑资源限额
#

43. Spring Cloud Alibaba 集成 OSS 对象存储的要点,STS 临时凭证与内网/外网端点选择,大文件分片上传与断点续传如何实现?

A 应使用明文 AK/SK 下发到客户端
B 用 STS 临时凭证保证安全,内网端点降成本,分片上传支持断点续传 ✓ 正确答案
C 分片上传无法断点续传
D 大文件必须用单次 PutObject 上传
#

44. Spring Cloud Alibaba 集成 SLB 实现负载均衡的原理,与 Spring Cloud LoadBalancer/Ribbon 的协作关系,以及多层负载均衡下的会话保持与超时问题?

A SLB 负责服务间调用负载均衡
B 多层负载均衡无需协调超时
C SLB 负责入口流量分发,客户端负载均衡负责服务间调用 ✓ 正确答案
D 会话保持与负载均衡无关
#

45. Spring Cloud Alibaba 集成短信服务(SMS)的工程实践,异步发送、重试与幂等、模板管理与多通道容灾如何设计?

A 短信应同步发送,阻塞主流程以保证可靠
B 用异步 MQ + 重试去重 + 多通道容灾保证可靠投递 ✓ 正确答案
C 短信内容可直接拼接,无需模板
D 重试无需幂等,可能重复发送
#

46. spring-cloud-starter-alibaba-nacos-config 的职责,它如何封装 Nacos 配置拉取与监听刷新,与原生 Nacos Client 的差异及常见踩坑?

A 它封装了配置拉取、监听刷新与 PropertySource 注入,并支持 @RefreshScope ✓ 正确答案
B 它只提供 getConfig 低层 API
C 它不支持 Profile 组合
D 它与原生 Client 完全等价
#

47. Spring Cloud Alibaba 的灰度发布与版本管理,如何结合 Nacos 配置与负载均衡规则实现按标签路由,灰度期的可观测与快速回滚如何保障?

A 标签路由依赖 Nacos 元数据与自定义 LoadBalancer supplier ✓ 正确答案
B 灰度只能通过重启切换
C 灰度期无需可观测
D 回滚必须重新部署实例
#

48. Spring Cloud Alibaba 的运维与诊断,Sentinel 控制台、Nacos 控制台与 Seata 监控如何配合定位线上问题,Metrics 如何接入 Prometheus?

A Sentinel 控制台用于查看服务注册
B Seata 监控用于查看流控规则
C Nacos 查服务与配置,Sentinel 查限流熔断,Seata 查事务,配合链路定位 ✓ 正确答案
D Metrics 只能通过 JMX 暴露
#

49. 动态规则或配置发布出错时,如何保存版本、分批生效并在不重启服务的前提下回滚

A 回滚后必须重启服务才生效
B 发布出错无法回滚
C 回滚能撤销已产生的数据库副作用
D 配置中心维护历史版本,可分批生效并动态回滚 ✓ 正确答案
#

50. 微服务的契约测试(Pact/CDC)

A 契约测试由提供方单独定义契约
B 契约测试能完全替代端到端测试
C 消费者定义契约,提供方用 Pact 文件回放验证 ✓ 正确答案
D 契约测试需要真实环境运行
#

51. Spring Cloud Gateway 的过滤器链与限流熔断如何与 Sentinel 协同?

A Gateway 内置 RequestRateLimiter 与 Sentinel 完全等价
B Sentinel 无法集成到 Gateway 过滤器链
C Sentinel 只能做全局限流,无法按 API 分组
D Sentinel 通过 SentinelGatewayFilter 对 route 资源做限流熔断 ✓ 正确答案
#

52. Spring Cloud 的配置刷新(@RefreshScope)原理与失效场景?

A 未标注 @RefreshScope 的 Bean 不刷新,静态字段与手动 new 的对象不受 scope 管理 ✓ 正确答案
B 所有 Bean 无论是否标注都会自动刷新
C @RefreshScope 会重建所有单例 Bean
D 刷新后旧缓存对象不会引发资源问题
#

53. Spring Cloud Alibaba 在 Spring Boot 3.x Servlet 6.0 / Jakarta EE 10 与 4.x Servlet 6.1 / Jakarta EE 11 上的演进

A Boot 3.x 基于 Servlet 6.1 / Jakarta EE 11
B 两个版本没有 Servlet 差异
C Boot 4.x 基于 Servlet 6.1 / Jakarta EE 11,并支持虚拟线程 ✓ 正确答案
D 演进只影响配置,不影响依赖库
#

54. Spring Cloud Alibaba 与 Spring Boot 4.0 的兼容版本矩阵、发布路线图与已知风险

A 需查兼容矩阵,风险集中在 Jakarta EE 11、虚拟线程与自动配置变化 ✓ 正确答案
B 所有组件版本都天然兼容 Boot 4.0
C 升级无需关注已知 issue
D Boot 4.0 与 3.x 完全兼容
#

55. Spring Cloud Alibaba 在 Spring Boot 3.5+/4.x 与 Spring Cloud 最新代际的兼容性矩阵

A 兼容矩阵给出了 Spring Cloud Alibaba、Spring Cloud、Spring Boot 及中间件的对齐版本 ✓ 正确答案
B 版本组合可随意搭配
C 升级只升级 Spring Cloud Alibaba 即可
D 矩阵与中间件版本无关
#

56. 微服务的康威定律(Conway's Law)

A 系统架构与组织架构无关
B 组织架构不影响系统设计
C 微服务划分无需考虑团队
D 系统架构往往反映组织之间的沟通结构 ✓ 正确答案
#

57. 微服务的服务调用(REST/RPC/gRPC)

A gRPC 基于 HTTP/2 + Protobuf,高性能且跨语言 ✓ 正确答案
B REST 是性能最高的调用方式
C RPC 调用跨语言能力最强
D 所有场景都应使用 REST
#

58. 微服务的迁移路径(绞杀者模式)

A 一次性重写整个单体
B 通过网关逐步切分流量,渐进替换单体为新服务 ✓ 正确答案
C 绞杀者模式无法回滚
D 绞杀者模式只适用于数据迁移
#

59. 灰度实例如何利用服务元数据与负载均衡提示进行路由,提示丢失时应采用什么安全默认值

A 提示丢失时应默认路由到灰度版本
B 提示丢失时应采用保守默认值,默认路由到稳定版本 ✓ 正确答案
C 提示丢失不影响路由
D 灰度路由无需监控
#

60. 组件控制台、客户端凭据与配置内容应如何实施最小权限、轮换和审计,避免默认口令风险

A 控制台账号应统一使用默认口令
B 应实施最小权限、密钥轮换与操作审计,并修改默认口令 ✓ 正确答案
C 配置内容无需加密
D 凭据一旦配置无需轮换
#

61. 跨组件故障演练如何覆盖注册中心分区、规则中心不可用和事务协调器切换,并定义验收指标

A 应覆盖注册中心分区、规则中心不可用、事务协调器切换,并定义可用性/降级/恢复指标 ✓ 正确答案
B 只需演练注册中心故障
C 故障演练无需验收指标
D 演练会破坏系统,不应执行
#

62. 配置中心启动失败时,哪些配置可从本地快照恢复,密钥和动态开关又为何需要更严格策略

A 所有配置(含密钥)都可从本地快照恢复
B 密钥应明文存于本地快照
C 普通配置可恢复,但密钥与安全开关需更严格策略(加密、fail-fast、安全默认值) ✓ 正确答案
D 动态开关应无条件恢复旧值
#

63. Spring Cloud Alibaba 应用制作 GraalVM Native Image 时,动态代理、反射和客户端初始化需如何处理

A 需通过 reflect-config/proxy-config 声明反射与代理,并处理客户端初始化 ✓ 正确答案
B Native Image 完全支持运行时反射与动态代理
C 只需配置反射即可,无需处理代理
D Spring Cloud Alibaba 组件无需额外配置
#

64. Spring Boot 4 + Spring Cloud 最新代际的兼容矩阵与升级注意事项?

A 升级无需关注 API 断点
B Boot 4 与 Boot 3 完全向后兼容
C 需查兼容矩阵,处理 Jakarta EE 11、虚拟线程与 API 断点,并逐级验证 ✓ 正确答案
D 升级只需更新版本号