13

分章自测题(三)

·17 分钟

接下来第4章(4.1 + 4.2)。微服务板块(第4、5章合计)占 ACA 考试 40% 权重,是全卷最大头。

建议用法:先自己想答案,再看解析。做错的不用死记答案,回头把对应章节那一段再看一遍,搞清楚"为什么"比记住"是什么"更重要。


第4章自测:微服务和 Serverless 架构

单选题

1. 企业应用架构从单体走到微服务,中间经历了四个阶段。下列排列顺序正确的是?

选项内容
A单体 → 微服务 → SOA → 垂直
B单体 → 垂直 → SOA → 微服务
CSOA → 单体 → 垂直 → 微服务
D垂直 → 单体 → 微服务 → SOA

正确答案:B

解析:四个阶段的逻辑是——单体改不动 → 按业务拆成几个独立应用(垂直)→ 引入 ESB 统一管通信(SOA)→ 去掉重中枢、彻底去中心化(微服务)。每一步都是为了解决上一步留下的问题。


2. 从 SOA 到微服务,最关键的转变是什么?

选项内容
A引入了 ESB 企业服务总线
B去中心化——不再依赖一个重的中枢
C所有服务共享同一个数据库
D把所有功能打包在一个进程里

正确答案:B

解析:SOA 靠 ESB 这一个中枢统一管通信,ESB 本身容易成为瓶颈。微服务把治理能力下放到每个服务自己身上,用轻量级协议(HTTP/gRPC)直接通信。A 是 SOA 的特征,不是"从 SOA 到微服务"的转变;C 和 D 是更早期架构的特征。


3. EDAS 的定位是什么?

选项内容
A容器镜像仓库
B一站式微服务 PaaS 平台,负责应用托管 + 微服务治理
C纯粹的注册中心,只管服务发现
D性能压测工具

正确答案:B

解析:EDAS(Enterprise Distributed Application Service)= 应用托管 + 微服务治理的 PaaS 平台。A 是 ACR,C 说的更像 Nacos/MSE 的一部分,D 是 PTS。记法:EDAS 管应用从生到死(部署→运行→扩缩容→发布→下线)。


4. EDAS 底层可以跑在哪些环境上?

选项内容
A只能跑在 ECS 虚拟机上
B只能跑在容器/ACK 集群上
CECS 虚拟机、容器、Kubernetes 都可以
D只能跑在物理服务器上

正确答案:C

解析:EDAS 的优势之一就是部署形态灵活——ECS、容器、Kubernetes 都能跑,和第3章的 ACK 容器产品打通。这也是它三大优势之一(免运维、深度集成、部署形态灵活)。


5. Nacos 的全称是什么?

选项内容
ANaming and Configuration Service
BDynamic Naming and Configuration Service
CNetwork Access Control Service
DNode Allocation and Coordination System

正确答案:B

解析:Nacos = Dynamic Naming and Configuration Service,别漏了前面的 Dynamic。两个核心能力对应名字里的两个词:Naming → 服务发现(注册中心),Configuration → 配置管理(配置中心)。


6. 和 ZooKeeper、Eureka 相比,Nacos 的核心优势是什么?

选项内容
A只做注册发现,功能更纯粹
B同时覆盖注册和配置两个能力,自带管理控制台
C只做配置管理,不支持服务发现
D需要更多运维投入,但性能最高

正确答案:B

解析:ZooKeeper 主要做注册发现,配置管理是附带的,运维门槛高;Eureka 只做注册发现,且已停更。Nacos 注册 + 配置二合一,自带管理控制台,运维门槛更低,是云原生场景的首选。


7. MSE(Microservices Engine)包含哪三个核心模块?

选项内容
A注册配置中心、微服务治理、云原生网关
B容器编排、镜像仓库、服务网格
C应用托管、数据库管理、日志采集
D性能测试、混沌工程、链路追踪

正确答案:A

解析:MSE 三件套——①注册配置中心(托管版 Nacos/ZooKeeper/Eureka)②微服务治理(全链路灰度、无损上下线、离群实例摘除)③云原生网关(兼容 K8s Ingress,统一流量入口)。B 是容器产品家族,D 是第5章的产品。


8. MSE 和 EDAS 的关系,正确的说法是?

选项内容
AMSE 和 EDAS 功能完全重复,不能同时使用
BEDAS 管应用托管和生命周期(偏 PaaS),MSE 管注册中心和网关(偏基础设施),两者可以搭配
CEDAS 是 MSE 的子产品
DMSE 管应用部署,EDAS 管注册中心

正确答案:B

解析:EDAS 偏 PaaS(管应用从生到死),MSE 偏基础设施(管注册中心、网关这些组件,不管应用部署本身)。两者可以独立用,也可以搭配:EDAS 管应用生命周期,MSE 管注册中心和网关。D 说反了。


9. Seata 的 AT 模式最核心的卖点是什么?

选项内容
A需要业务自己写 try / confirm / cancel 三个接口
B业务代码不用写补偿逻辑,Seata 拦截 SQL 自动生成回滚日志,侵入性很低
C只适合流程长、参与方多的业务编排
D完全不支持回滚

正确答案:B

解析:AT = Automatic Transaction,核心就是"自动"——Seata 拦截 SQL 自动生成回滚日志,事务失败时自动反向补偿,开发体验接近本地事务。A 说的是 TCC 模式,C 说的是 SAGA 模式。


10. 下列分布式事务模式和适用场景的匹配,错误的是?

选项内容
AAT——适合大多数数据库操作
BTCC——适合对性能和一致性要求极高的核心链路
CSAGA——适合流程长、参与方多的业务编排
DAT——适合不涉及数据库、纯内存计算的场景

正确答案:D

解析:AT 模式的工作原理是拦截 SQL 自动生成回滚日志——如果根本不涉及数据库操作,AT 就无从拦截,自然不适用。AT 的强项是数据库操作场景,不是纯内存计算。


11. 需要双倍资源、但切换瞬间完成且回滚也是一次性切回的发布策略是?

选项内容
A滚动更新
B蓝绿发布
C金丝雀发布(灰度发布)
D热修复

正确答案:B

解析:蓝绿发布 = 同时维护新旧两套完整环境,验证无误后一次性切流量。优点是切换瞬间完成、回滚也是一键切回;代价是需要双倍资源。滚动更新不需要双倍资源但新旧共存;金丝雀先放小流量验证,风险最小但验证周期长。


12. 金丝雀发布的核心思路是什么?

选项内容
A一次性把所有流量切到新版本
B先把一小部分流量导到新版本,没问题再逐步放大比例
C逐批替换旧版本实例
D完全不发布,只在测试环境验证

正确答案:B

解析:金丝雀发布(又叫灰度发布)的精髓是风险可控——比如先放5%流量到新版本试水,没问题再10%→50%→100%。C 说的是滚动更新,做法相似但本质不同:滚动更新是逐批替换实例,金丝雀是按流量比例分配。


13. Serverless 到底是什么意思?

选项内容
A完全没有服务器
B服务器依然存在,但运维责任从用户转移给了云厂商
C用户必须自己管理所有服务器
D只能在物理机上运行

正确答案:B

解析Serverless ≠ 没有服务器,服务器依然存在,只是"管服务器"这件事变成了云厂商的事,用户只需要写业务逻辑。这是个常考的认知纠偏点。


14. 函数计算 FC 的计费方式是?

选项内容
A按购买的服务器数量月付
B按函数实际的调用次数和执行时长付费,没有调用几乎不产生费用
C一次性买断终身使用权
D按代码行数计费

正确答案:B

解析:FC 是事件驱动的计算服务,计费按实际消耗(调用次数 × 执行时长),没有调用就几乎零费用——这正是 Serverless "按量付费"的核心价值,适合流量不确定、间歇性运行的场景。


15.(场景题)一家企业有大量已有的 Spring Boot 微服务应用,想上云但不想改代码,也不想管底层服务器。最适合用哪个产品?

选项内容
A函数计算 FC
BSAE(Serverless 应用引擎)
CACK Pro 版
DACR

正确答案:B

解析:关键词"已有微服务应用 + 不改代码 + 不管服务器"直接指向 SAE。FC 要求把代码拆成函数粒度,不适合整个 Spring Boot 应用;ACK Pro 版需要用户自己管 Worker Node;ACR 是镜像仓库不是运行平台。SAE 支持 JAR/WAR/Docker 镜像直接部署,原有应用基本不用改造。


多选题

M1.(3个)微服务架构下,框架需要解决的问题包括?

选项内容
A服务注册与发现
B配置管理
C限流、熔断、降级
D物理机的硬件采购
E前端页面的 CSS 样式调整

正确答案:A、B、C

解析:微服务拆分后需要框架兜底的问题:服务怎么找到对方(注册发现)、配置怎么集中管理、调用链怎么容错(限流熔断降级)。D 和 E 跟微服务框架无关。


M2.(3个)关于 Dubbo 的历史,正确的说法是?

选项内容
A2008年在阿里内部诞生
B2011年开源
C从未暂停更新,一直保持活跃
D2019年由 Apache 孵化毕业成为顶级项目
E是用 Python 写的

正确答案:A、B、D

解析:C 说反了——2014年因为内部团队调整曾暂停更新,2017年才重启。E 也不对——Dubbo 是 Java 生态的 RPC 框架。时间线:2008年诞生 → 2011年开源 → 2014年暂停 → 2017年重启 → 2019年 Apache 毕业。


M3.(2个)关于 Dubbo3 和 Spring Cloud Alibaba 的选型,正确的说法是?

选项内容
A两者互斥,不能同时使用
B团队已经在用 Spring Cloud 生态就选 Spring Cloud Alibaba
C对调用性能要求高或已有 Dubbo 基础就直接用 Dubbo3
DDubbo3 不支持 gRPC 协议
ESpring Cloud Alibaba 不包含 Nacos

正确答案:B、C

解析:两者不互斥——Dubbo3 可以作为 Spring Cloud Alibaba 的 RPC 层使用,A 说反了。D 不对——Dubbo3 原生支持 Triple 协议(兼容 gRPC)。E 也不对——Spring Cloud Alibaba 正是把 Nacos、Sentinel、Seata、RocketMQ 集成到 Spring Cloud 体系里的。


M4.(3个)关于三种发布策略,正确的说法是?

选项内容
A蓝绿发布需要双倍资源
B金丝雀发布先把一小部分流量导到新版本验证
C滚动更新不需要双倍资源
D蓝绿发布的回滚需要很长时间
E金丝雀发布和滚动更新完全一样

正确答案:A、B、C

解析:D 说反了——蓝绿发布的回滚是一次性切回旧环境,速度最快。E 也不对——滚动更新是逐批替换实例,金丝雀是按流量比例分配,维度不同。实际使用中最常见的是金丝雀 + 滚动的组合。


M5.(3个)关于 EDAS、SAE、FC 三者的区别,正确的是?

选项内容
AEDAS 治理粒度是应用,用户需要规划实例规格和数量
BSAE 治理粒度是应用,用户不需要感知底层实例(自动伸缩)
CFC 治理粒度是函数,用户完全不需要感知底层
DFC 适合长期稳定运行的核心微服务
ESAE 要求用户从零重写代码

正确答案:A、B、C

解析:三者是同一条谱系上"托管程度"的递进——EDAS 需要管实例 → SAE 自动伸缩不用管实例 → FC 连应用形态都不用管,只写函数。D 说反了——长期稳定的核心微服务适合 EDAS,FC 适合短时、事件触发的轻量任务。E 也不对——SAE 定位"零代码改造",原有 Spring Cloud/Dubbo 应用基本不用改。


M6.(2个)关于 Seata 分布式事务框架,正确的说法是?

选项内容
A目前是 Apache 孵化项目
BAT 模式通过拦截 SQL 自动生成回滚日志
CTCC 模式完全不需要业务写补偿逻辑
D只支持 AT 一种模式
ESeata 是谷歌开源的项目

正确答案:A、B

解析:C 说反了——TCC 模式恰恰需要业务自己写 try / confirm / cancel 三个接口,开发量大但灵活;AT 才是"不用写补偿逻辑"的那个。D 不对——Seata 支持 AT、TCC、SAGA 三种模式。E 不对——Seata 是阿里开源的。

💬

留言区待配置

部署 Twikoo 后端后,设置环境变量 NEXT_PUBLIC_TWIKOO_ENV_ID