系统架构设计(十六):敏感点、权衡点、风险点和非风险点
术语定义
概念 | 定义说明 |
---|---|
敏感点(Sensitivity Point) | 架构设计中对某个质量属性有显著影响的点,一旦改变该点,会显著影响系统的某个质量属性。 |
风险点(Risk Point) | 由于架构决策带来的潜在失败风险,可能导致系统不能满足质量需求。 |
权衡点(Tradeoff Point) | 架构中存在多个质量属性冲突的点,对其中一个优化可能导致另一个下降,必须进行平衡。 |
非风险点(Non-risk Point) | 设计已经成熟、实现简单、可控性强、没有对质量属性构成重大威胁的部分。 |
对比与联系
项目 | 敏感点 | 风险点 | 权衡点 | 非风险点 |
---|---|---|---|---|
是否直接影响质量属性 | 是 | 是 | 是 | 否 |
是否会引发问题 | 否(本身不等于风险) | 是 | 否(但需权衡) | 否 |
是否需要重点评估 | 是 | 是 | 是 | 否 |
举例 | 缓存策略、数据库设计、线程模型 | 第三方组件稳定性、网络瓶颈、未验证技术 | 安全 vs 性能、可维护性 vs 灵活性 | 页面展示样式、Logo设计 |
常见示例分析
敏感点示例:
- 使用缓存机制:会明显提升性能,但影响一致性。
- 选择同步 or 异步通信方式:对响应时间影响大。
- 数据库事务机制设计:影响数据一致性、性能。
风险点示例:
- 引入未经验证的开源框架或第三方组件。
- 架构缺乏扩展性设计,未来业务扩展困难。
- 服务依赖过重,单点故障未处理。
权衡点示例:
- 使用加密通信保障安全 vs 降低性能。
- 数据库归一化(可维护) vs 查询效率(性能)。
- 微服务粒度细 vs 管理运维复杂度提升。
非风险点示例:
- 系统UI颜色选型。
- 报表样式格式。
- 静态网页的基本访问功能。
示例
某电子商务系统架构中,采用微服务架构 + Redis 缓存 + 第三方支付平台接入。请指出系统的敏感点、风险点、权衡点和非风险点各一项,并说明原因。
敏感点:Redis 缓存设计
- 说明:缓存策略直接影响系统的响应速度与一致性,是性能敏感点。
风险点:第三方支付平台的可靠性
- 说明:一旦第三方接口变更或不可用,将导致支付失败,是系统运行风险点。
权衡点:微服务粒度设计
- 说明:粒度过细增加部署复杂性;粒度过粗限制独立扩展,是性能与维护的权衡点。
非风险点:商品展示页的UI样式设计
- 说明:该设计不影响主要功能与质量目标,是非风险点。