# 1. JMH 比较虚拟线程与平台线程时,为什么必须引入真实阻塞、并发度和载体线程观测 A 单线程顺序执行即可 B 完全模拟只观测 wall-clock,不设置并发 C 只做纯计算,不涉及任何阻塞 D 引入真实阻塞并设置足够并发度,让阻塞任务被挂起调度 ✓ 正确答案
# 2. Linkerd 的 identity、destination、policy 与轻量数据面如何完成 mTLS、服务发现和授权 A destination 组件 B policy 组件 C identity 组件 ✓ 正确答案 D linkerd-proxy 数据面
# 3. Modulith + 微服务(混合架构)的工程价值 A 一开始就强制拆分为大量微服务 B 只允许单体,不允许任何拆分 C 完全放弃模块化与边界 D 先保持模块边界清晰的单体,按需再拆分为服务,降低过早分布式复杂度 ✓ 正确答案
# 4. Service Mesh 指标显示成功而业务超时时,应如何关联代理队列、应用线程、DNS 和下游响应时间 A 结合代理队列深度、应用线程状态、DNS 耗时与下游响应时间定位 ✓ 正确答案 B 只看代理转发是否成功即可 C 忽略应用层线程状态 D 只检查 DNS,无需看其他
# 5. 多集群服务发现中,Linkerd 联邦、Istio east-west gateway 与 Cilium Cluster Mesh 的身份域应如何避免重名服务误路由 A mTLS 身份不区分集群 B 让所有集群约定只能使用唯一的服务名 C 关闭跨集群路由能力 D 把集群纳入身份与路由维度,用复合标识定位服务 ✓ 正确答案
# 8. 测试容器镜像被上游覆盖同一标签时,如何通过 digest 固定、签名校验和缓存清理保持可重现 A 用镜像 digest 固定内容,并配合签名校验 ✓ 正确答案 B 始终使用 latest 标签 C 依赖本机缓存,不校验 D 只清理缓存,不固定版本
# 9. 网格重试与 Java 客户端重试叠加后,如何按总截止时间限制请求放大并保持幂等语义 A 禁用所有重试能力 B 无限重试直到成功 C 不设 deadline,任其放大 D 设置端到端总截止时间,并限制重试次数上限 ✓ 正确答案
# 10. 微服务拆分的触发信号(团队规模、部署耦合、故障爆炸半径)与不拆的代价 A 数据库索引不够多 B 代码命名不够美观 C 测试覆盖率达到 100% D 部署耦合严重、故障爆炸半径大、团队需独立发布 ✓ 正确答案
# 11. Istio Ambient 的 ztunnel 与 waypoint 分别承担四层和七层职责,流量在何时必须经过 waypoint A 经过 waypoint 进行 L7 处理 ✓ 正确答案 B 绕过所有代理直连 C 只经过 ztunnel 即可 D 只做 TCP 转发
# 12. JMH 的 fork、warmup、measurement、Blackhole 与状态作用域如何防止常量折叠、逃逸分析和共享状态污染结果 A 消费计算结果,防止被 JIT 死代码消除或常量折叠 ✓ 正确答案 B 让结果对 JVM 可见即可 C 加速方法执行 D 增加方法调用次数
# 13. Testcontainers 并行启动数据库、Kafka 和对象存储时,怎样限制资源并确保每个测试拥有隔离数据 A 为每个测试使用独立的 schema、topic 前缀或存储桶前缀 ✓ 正确答案 B 串行执行且共用数据 C 所有测试共享同一份数据 D 不创建任何隔离命名空间
# 14. 从 Sidecar Istio 迁移 Ambient 时,命名空间纳管、出口流量、七层策略和可观测标签应怎样灰度验证 A 一次性全量切换所有服务 B 小范围灰度并在各维度(出口、L7 策略、标签)独立验证后再推进 ✓ 正确答案 C 跳过出口流量验证 D 迁移后不检查可观测标签
# 15. 同一 Maven 制品在 CycloneDX 与 SPDX SBOM 中标识不一致时,如何用 purl、CPE、哈希和坐标去重 A purl(软件包 URL),必要时辅以哈希校验 ✓ 正确答案 B 仅依赖版本号 C 制品文件名 D 任意字符串描述
# 16. 契约测试与 OpenAPI schema 校验分别覆盖行为示例和结构空间的哪些部分,为什么不能相互替代 A 契约测试能覆盖所有合法结构 B 二者完全相同,可互相替代 C schema 校验能替代所有契约测试 D 契约测试覆盖具体行为示例,schema 校验覆盖结构空间,二者互补不可替代 ✓ 正确答案
# 17. 性能回归门禁如何使用置信区间、效应大小和噪声基线,而不是以单次均值判定失败 A 只看单次运行最快的均值 B 忽略统计显著性 C 只要均值变慢就判失败 D 结合置信区间、效应大小与噪声基线判断,而非单次均值 ✓ 正确答案
# 18. 网格故障时的直连回退为什么可能绕过 mTLS 与授权,演练中应设置哪些不可突破的安全门禁 A 回退时直接禁用所有安全机制 B 回退路径仍保持加密与鉴权,并对敏感流量禁止无保护直连 ✓ 正确答案 C 回退路径不做任何审计 D 允许所有流量无保护直连
# 19. Modulith 与 GraalVM Native Image 的工程价值 A 扩大反射扫描范围 B 模块清晰降低 AOT 分析难度,获得快速启动与低内存的原生镜像 ✓ 正确答案 C 让原生镜像更臃肿 D 与模块化无关
# 20. Pact broker 中 pending pact、WIP pact 与 can-i-deploy 检查怎样支持消费者和提供者独立发布 A 只检查代码风格 B 依据已验证的契约关系,判断某版本能否安全部署 ✓ 正确答案 C 跳过契约验证直接部署 D 强制消费者与提供者必须同时发布
# 21. SLSA v1.0 的 Build Track 级别如何用隔离构建、签名 provenance 和可验证构建服务逐级满足 A 取消来源证明 B 为 provenance 生成签名,防止来源声明被篡改 ✓ 正确答案 C 只要求 provenance 存在即可 D 让构建过程完全不可审计
# 22. Sigstore 中 Fulcio、Rekor、Cosign 与 OIDC 身份如何形成无长期私钥的制品签名验证链 A 开发者自行长期保存的私钥 B Rekor C Fulcio ✓ 正确答案 D Cosign
# 23. Testcontainers 2.x 升级后,容器生命周期、网络别名、等待策略与可复用模式应如何避免测试相互污染 A 不复用但也不清理 B 复用容器且所有测试共享同一份数据 C 复用容器无需等待就绪 D 复用容器但每个测试独立清理数据,保证隔离 ✓ 正确答案
# 24. 契约验证通过而端到端仍失败时,应继续检查哪些网关重写、认证策略、序列化配置与数据约束 A 只检查接口直连是否正常 B 忽略网关与序列化 C 网关重写、认证策略、序列化配置与数据约束等链路环节 ✓ 正确答案 D 契约测试已足够,无需再查
# 25. 用 ArchUnit/Spring Modulith 依赖规则验证模块边界,防止模块化腐化 A 构建/测试阶段通过静态规则自动检查,合入前拦截 ✓ 正确答案 B 完全不检查 C 运行时动态拦截 D 生产环境人工检查
# 26. JEP 509 JFR CPU-Time Profiling 如何区分线程实际获得的 CPU 时间与墙钟采样中的等待时间 A 忽略 CPU 占用 B 只统计墙钟时间 C 用墙钟时间替代 CPU 时间 D 把真正占用 CPU 的热点与锁/IO 等待区分开,避免误判 ✓ 正确答案
# 27. WireMock 录制得到的桩包含令牌、时间戳和动态 ID 时,如何脱敏并转换为稳定匹配器 A 只匹配固定令牌 B 原样保留动态值硬匹配 C 对敏感字段脱敏,动态字段用正则或忽略可变值匹配 ✓ 正确答案 D 删除所有动态字段
# 28. WireMock 的请求匹配、场景状态、故障模拟和响应模板如何复现超时、分块中断与协议错误 A 忽略请求匹配 B 场景状态(scenario)驱动响应变化 ✓ 正确答案 C 单一固定响应 D 禁用响应模板
# 29. 依赖仅在测试、构建插件或可选 profile 中出现时,SBOM scope 怎样记录才不会夸大生产暴露面 A 不区分任何 scope B 在 SBOM 中删除所有依赖 C 按其实际用途标注为测试/构建 scope,而非生产 scope ✓ 正确答案 D 把所有依赖都标为生产 scope
# 30. 容器镜像同时包含 JRE、应用 JAR、分层依赖和操作系统包时,SBOM 应在哪些构建阶段生成与合并 A 在各对应构建阶段分别生成各层 SBOM,再合并为覆盖全镜像的整体 SBOM ✓ 正确答案 B 忽略 OS 包的 SBOM C 只生成其中一个部分的 SBOM D 镜像完成后不再生成 SBOM
# 31. 微基准结论与生产 JFR 相反时,如何检查数据规模、编译层级、NUMA、容器限额和请求分布 A 两个环境完全一致 B 数据规模、编译层级、NUMA、容器限额与请求分布等测量语境不同 ✓ 正确答案 C 与测量语境完全无关 D 微基准一定能代表生产
# 32. 漏洞数据库修订严重度或撤回 CVE 后,SBOM 驱动的门禁怎样重算且保留原始决策证据 A 沿用旧结论,不重算 B 忽略漏洞数据变化 C 基于最新数据重算门禁,并保留原始决策证据 ✓ 正确答案 D 删除所有历史决策记录