2026年系统架构师考试试题及答案汇编_第1页
2026年系统架构师考试试题及答案汇编_第2页
2026年系统架构师考试试题及答案汇编_第3页
2026年系统架构师考试试题及答案汇编_第4页
2026年系统架构师考试试题及答案汇编_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年系统架构师考试试题及答案汇编一、案例分析题(共5题,每题25分,任选3题作答,满分75分)1.某电商平台长期采用单体架构,订单、商品、支付、库存等模块部署在一个Java应用中。随着大促流量增长,系统频繁出现响应超时;同时每次版本发布需要全量回归,新功能上线周期长达数周。技术团队提出两种改造目标:方案A采用微服务架构进行全量重构;方案B在现有单体基础上引入ESB做SOA服务化改造。请回答:(1)(8分)从性能、可用性、可修改性三个质量属性,对比方案A与方案B的优缺点。(2)(9分)质量属性场景由哪六部分组成?以“应用运行高峰期,1万个并发用户同时提交订单,订单服务须在2秒内完成响应且不产生重复扣款”为例,写出该场景的六部分。(3)(8分)若用ATAM进行架构评估,写出主要评估步骤,并说明如何识别架构风险。答案:(1)性能:方案A可按业务服务独立伸缩,例如订单服务可以多实例部署而无需扩容整个系统,热点服务性能弹性更强;方案B的ESB可能成为性能瓶颈,且共享数据库在扩容时会受限。可用性:方案A服务间故障隔离,单个服务失败不会拖垮全局;方案B依赖ESB进行联通,ESB单点风险会降低整体可用性。可修改性:方案A的服务边界清晰,可独立开发、测试、部署,变更影响域小;方案B的服务往往会共享数据库表或接口,部分改动仍可能穿透边界,导致回归成本较高。(2)六部分:刺激源、刺激、环境、工件、响应、响应度量。对应场景:-刺激源:用户;-刺激:提交订单请求;-环境:应用运行高峰期,并发用户数为1万;-工件:订单服务;-响应:订单被正确接受并返回成功,未发生重复扣款;-响应度量:2秒内完成响应。(3)ATAM评估主要步骤:①收集并描述系统架构视图,包括逻辑视图、开发视图、进程视图、物理视图;②建立质量属性效用树,将商业目标转化为具体场景;③分析架构方法或架构模式对场景的支持程度,找出敏感点;④识别风险点、权衡点,输出评估结论。识别风险的方法:将每个高优先级场景作为检验基准,逐一检查架构决策是否可能导致该场景无法满足。例如ESB集中式调用如果成为性能瓶颈且没有降级方案,就应标记为高风险。解析:本题旨在考查架构风格比较与质量属性场景。注意方案B的ESB在微服务设计中也可使用,但会引入集中点;ATAM的风险识别强调场景与架构决策之间的关联。2.某大型零售企业计划重构核心交易系统,采用SpringCloud和Kubernetes构建微服务架构。现有业务包括商品、购物车、订单、支付、库存、物流等模块,各模块之间频繁交互,且对订单、支付、库存三部分要求数据最终一致。请回答:(1)(8分)给出微服务划分的主要原则,并结合业务域至少列出5个微服务。(2)(9分)描述基于“编排”的Saga模式处理订单、支付、库存分布式事务的流程,并说明与2PC(两阶段提交)相比的优势。(3)(8分)API网关应具备哪些核心功能?如何通过熔断器避免微服务故障扩散?答案:(1)主要原则:按业务能力或限界上下文划分;服务内高内聚、服务间低耦合;每个服务拥有独立的数据库;服务间通过轻量级接口通信,例如REST或gRPC;团队结构应与业务能力对齐。可划分微服务:商品服务、购物车服务、订单服务、支付服务、库存服务、物流服务、用户服务、营销服务。(2)基于编排的Saga流程:由订单编排器负责协调。①创建订单,状态为“待支付”;②调用支付服务完成扣款;③调用库存服务锁定库存;④全部成功则订单状态置为“已完成”;⑤任一步失败,例如库存不足,则按相反顺序执行补偿事务:释放锁定库存、发起退款、将订单状态置为“已取消”。相比2PC的优势:Saga不需要长时间持有全局锁和资源,系统可用性和吞吐量更高;事务被拆成本地事务,通过异步消息推进,适合微服务等分布式环境;代价是只能保证最终一致,需要实现补偿逻辑和失败恢复。(3)API网关核心功能:路由与负载均衡、统一认证鉴权、限流与降级、请求日志与监控、协议转换、灰度发布、请求聚合等。熔断器:网关或客户端为每个依赖服务维护熔断状态,包括关闭、打开、半开;当调用失败率超过阈值时,熔断器打开,后续请求立即返回降级结果,不再继续穿透到故障服务;经过冷却时间后进入半开,放少量试探请求,若成功则恢复关闭状态。这样可以隔离故障,防止雪崩效应。解析:服务划分强调数据库独立;Saga与2PC的区别要抓住“长事务锁”与“补偿”两个核心;熔断器的三态转换是高频考点。3.某资讯类App的首页信息流使用Redis缓存热点数据,底层数据库为MySQL。大促期间出现:热点key过期后瞬间大量请求打到数据库;缓存与数据库更新顺序不当导致用户看到旧数据。请回答:(1)(8分)分别解释缓存穿透、缓存击穿、缓存雪崩,各给出一种应对措施。(2)(9分)分析Cache-Aside模式下“先更新数据库、后删除缓存”和“先删除缓存、后更新数据库”两种时序可能导致的问题,并给出一种保证最终一致的方案。(3)(8分)Redis集群使用一致性哈希分区时,引入虚拟节点解决了什么问题?写出哈希环中虚拟节点位置的计算思想。答案:(1)穿透:查询一个必然不存在的数据,缓存未命中后每次都落到数据库。措施:缓存空值,或使用布隆过滤器拦截不存在key。击穿:一个热点key过期瞬间,大量并发请求同时回源。措施:热点key不设过期时间或逻辑过期;使用互斥锁只放一个请求回源。雪崩:大量key在同一时间集体过期,导致数据库压力突增。措施:过期时间加随机因子;采用多级缓存;对数据库限流或降级。(2)“先更新数据库,后删除缓存”:如果删除缓存失败,旧缓存继续有效,用户会持续读到旧值。“先删除缓存,后更新数据库”:更新数据库期间若有并发读,会把数据库中尚未更新的旧值回填到缓存,之后数据库更新但缓存已是旧值。成熟方案:-延迟双删:先删除缓存,更新数据库,等待短暂延迟后再次删除缓存;-订阅数据库binlog,例如通过Canal获取数据变更记录,利用消息队列异步再次删除或刷新缓存;-使用带版本号的缓存,与数据库版本对不上时拒绝使用。(3)一致性哈希将哈希空间视为首尾相接的环。数据和节点都映射到环上,数据落在顺时针方向最近的节点。若物理节点较少,环上分布会不均匀,导致数据倾斜;引入虚拟节点后,每个物理节点Ni在环上拥有多个虚拟位置。例如虚拟节点位置可计算为has解析:穿透、击穿、雪崩要按对象区分;缓存一致性是工程重点,延迟双删并不能做到绝对一致,生产上更常用binlog异步删除。4.某市政府“一网通办”平台面向公众提供政务事项申报、进度查询、结果公示等功能,存储居民身份信息、企业信用等敏感数据。平台需通过网络安全等级保护(等保2.0)三级测评。请回答:(1)(8分)从网络安全、主机安全、应用安全、数据安全四个层面分别提出至少一条符合等保三级要求的安全措施。(2)(9分)系统采用JWT进行访问控制。说明JWT的组成,并分别针对Token泄露和Token吊销难的问题给出解决思路。(3)(8分)对身份证号等敏感字段,应采用哪种加密存储策略?若仍需支持按身份证号精确查询,如何设计可搜索加密方案?答案:(1)网络安全:按业务功能划分安全区域,区域间部署防火墙和IDS/IPS进行访问控制与流量检测。主机安全:服务器部署终端安全管理软件,进行安全基线配置核查,安装主机入侵检测和防病毒工具。应用安全:部署WAF,对输入进行白名单校验,采用统一的认证鉴权框架并开启审计日志。数据安全:对身份证号、手机号等敏感字段加密存储;数据库设置独立审计账号;定期进行本地备份和异地备份。(2)JWT由Header、Payload、Signature三部分组成。Header描述算法与Token类型,Payload承载用户身份、过期时间、jti等声明,Signature使用HMAC或RSA对前两部分签名。应对Token泄露:使用HTTPS传输;缩短accesstoken有效期,如15分钟,并配套refreshtoken轮换;可加入设备指纹或IP绑定,异常环境强制重新认证。应对吊销难:在Redis中维护黑名单,将jti或用户版本号标记为失效,JWT校验时先查询该Key是否在黑名单中,从而实现服务端立即可控。(3)敏感字段加密存储:推荐使用AES-256-GCM对称加密,密钥由统一密钥管理系统KMS生成和轮换,系统不保存明文密钥;对每个字段采用随机初始化向量IV。为支持精确查询,可增加等值可检索索引:对明文数据加盐后计算idx=解析:等保三级的措施不唯一,回答要覆盖“边界、主机、应用、数据”四个层次;JWT吊销黑名单是实现服务端注销的常用手段;可搜索加密是密码学与数据库结合的热点。5.某在线教育平台计划开展热门课程秒杀活动,开场前1分钟约有50万用户同时访问选课页面,选课写操作并发峰值较大。要求秒杀期间系统不宕机、不超卖,且可用性达到99.99%。请回答:(1)(8分)给出从客户端、CDN、负载层、应用层、数据层五个层面的优化设计。(2)(9分)对比“数据库悲观锁”“Redis分布式锁”“Redis预扣库存”三种防止库存超卖方案的优缺点。(3)(8分)计算99.99%可用性所允许的全年停机秒数,并给出多活部署的关键策略。答案:(1)客户端:页面静态化,点击后按钮置灰,禁止重复提交,前端异步轮询结果。CDN:将课程图片、详情页静态资源分发到边缘节点,降低源站压力。负载层:使用DNS轮询、LVS做四层负载,Nginx做七层负载,构建双活负载集群。应用层:秒杀接口限流,例如令牌桶或漏桶;使用消息队列削峰填谷;业务前后端分离,应用无状态化。数据层:Redis集群承接热点计数和库存,MySQL主从读写分离,历史订单分库分表。(2)数据库悲观锁:在执行扣减时使用SELECT...FORUPDATE对库存行加锁,直到事务提交。优点是强一致,不会超卖;缺点是锁粒度大、并发吞吐低,容易成为性能瓶颈。Redis分布式锁,例如Redisson:对“库存扣减”加互斥锁,串行执行。优点是实现简单、性能中等;缺点是需要将锁与库存操作绑定,锁超时可能引发并发问题。Redis预扣库存:用Lua脚本原子执行库存判断与DECR,扣减成功后异步写订单,由后台任务和消息队列完成数据落库。优点是吞吐量高,能够应对秒杀峰值;缺点是Redis与数据库可能出现不一致,例如订单创建失败需要补偿返还库存,Redis宕机可能造成超卖或丢单,需配合持久化和降级方案。综合来看,秒杀场景通常采用Redis预扣库存、异步削峰和最终一致性补偿。(3)允许停机时间计算:365约为52.56分钟。多活部署关键策略:-同城双

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论