- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025下半年高级软件水平考试《系统架构设计师(案例分析)》练习题及答案
一、系统质量属性与架构权衡案例分析
【背景材料】
某城商行新一代核心系统建设进入架构选型阶段,业务方提出“秒杀类理财发售”场景:
1.发售期3分钟,预估120万用户同时抢购5亿元额度;
2.不允许超卖,不允许库存为负;
3.交易成功率≥99.9%,P99延迟≤300ms;
4.监管要求7年内交易记录不可篡改;
5.系统需支持灰度发布,故障回滚时间≤30s。
架构委员会给出两套候选架构:
A.传统单体+OracleRAC+ActiveMQ;
B.微服务+自研分布式库存服务+Kafka+MySQLGroupReplication+区块链存证。
【问题1】(8分)
请用ATAM方法列出两套架构在性能、可用性、可修改性、安全性四个质量属性场景下的主要权衡点,并以“质量属性架构策略风险权衡”四元组形式呈现,至少8组。
【答案与解析】
1.性能架构策略:A采用本地SQL悲观锁;风险:Oracle单节点CPU飙升;权衡:牺牲可扩展性换取强一致性。
2.性能架构策略:B采用Redis分片+Lua脚本扣减;风险:Redis热点Key;权衡:用最终一致性换高吞吐。
3.可用性架构策略:A用RAC双活;风险:脑裂导致库存重复扣减;权衡:降低分区容错能力换一致性。
4.可用性架构策略:B用Kafka异步消息;风险:消费者积压;权衡:提升分区容错但增加延迟。
5.可修改性架构策略:A单体EAR包;风险:代码耦合;权衡:降低开发成本但延长发布周期。
6.可修改性架构策略:B微服务+领域拆分;风险:接口版本爆炸;权衡:提升独立演进却增加运维复杂度。
7.安全性架构策略:A用数据库审计;风险:DBA可篡改;权衡:简化实现但无法满足7年不可篡改。
8.安全性架构策略:B用Fabric区块链存证;风险:TPS仅2万;权衡:提升可信性但成为性能瓶颈。
【评分要点】每四元组1分,写出8组得8分;若缺少“权衡”扣0.5分。
【问题2】(7分)
针对“不允许超卖”这一硬约束,B架构中分布式库存服务设计了“预扣+超时回补”机制:
1.预扣使用RedisLua脚本保证原子性;
2.预扣成功后发送Kafka消息,订单服务消费后异步落库;
3.若5分钟未收到订单落库成功消息,则自动回补。
请画出时序图,并指出在网络分区P场景下可能产生超卖的异常时序,给出改进方案。
【答案与解析】
时序图(文字描述):
用户→库存服务:抢购请求
库存服务→Redis:EVAL(lua,key,args)
Redis→库存服务:返回剩余库存
库存服务→Kafka:send(preorder)
订单服务→Kafka:poll
订单服务→MySQL:INSERT(order)
MySQL→订单服务:OK
订单服务→Kafka:send(result)
库存服务→Kafka:pollresult
异常时序(分区P):
T1预扣成功;T2网络分区,订单服务收不到preorder;T3库存服务等待5min后回补;T4分区恢复,订单服务重试,此时库存已回补,再次扣减成功,导致总扣减总库存。
改进:
1.预扣记录持久化到MySQL库存扣减表,状态为PRE,利用唯一索引防重;
2.回补时检查该PRE记录是否已转为CONFIRMED;
3.引入全局事务ID(XID)贯穿Redis、Kafka、MySQL,利用MySQL的“select…forupdate”对XID行级锁,确保回补与确认串行化。
【评分要点】时序3分,异常2分,改进2分;若未指出“分区恢复后重试”扣1分。
【问题3】(5分)
监管要求7年不可篡改,B架构采用Fabric区块链。请计算:
1.若每笔交易存证0.5KB,5亿元额度、单笔1万元,共5万笔,需占多少磁盘?
2.Fabric每区块最大100KB,每块约200笔,5万笔需多少块?
3.若采用LevelDB索引+快照,每年新增3万笔,7年后累计索引膨胀率约30%,评估7年后磁盘占用。
【答案】
1.5万笔×0.5KB=25MB;
2.5万/200=250块;
您可能关注的文档
最近下载
- 浅析企业员工流失的原因及对策——以福州永辉超市为例.docx VIP
- XK3190-C8技术手册.pdf VIP
- 广州市历年中考(2025-2026)化学试题(含答案).doc VIP
- 办公设备维护方案.docx VIP
- 浙江省杭州市学军中学四校区2022-2023学年高二上学期期末物理试题(含答案解析).docx
- 《金瓶梅》中潘金莲“绣鞋”之物象探析.doc VIP
- 14s501-1P35-37页球磨铸铁踏步施工检验标准.pdf VIP
- 2026年上海市松江区中考一模化学试卷含详解.docx VIP
- 2025研读新课标,探寻数学教育新方向——读《小学数学新课程标准》有感.docx
- 如何通过手机号码查询行动轨迹.docx VIP
原创力文档


文档评论(0)