概念引入
当今应用都属于数据密集型应用,而不是计算密集型应用。对于这类应用,CPU处理往往不是第一限制因素,关键在于数据量、数据复杂度及数据的快速多边性。
数据密集型应用系统设计的目标
可靠性、可扩展、可维护性
可靠性
- 应用程序执行用户所期望的功能。
- 可以容忍用户出现错误或者不正确的使用方法。
- 性能可以应对典型场景、合理负载压力和数据量。
- 系统可防止任何未经授权的访问和滥用。
一句话概述,即使发生了某些错误,系统仍可以继续正常工作。
可扩展性
- 指用来描述系统应对负载增加能力的术语。通俗来讲,就是随着流量增加,程序能否有应对措施。
吞吐量:指每秒处理的记录数。
中位数指标适合描述用户等待时长。
可维护性
软件设计的三个原则
- 可运维性: 方便运营团队来保持系统平稳运行。
- 简单性:简化系统复杂性,使新工程师能够轻松理解系统。
- 可演化行:后续工程师能够轻松对系统进行改进,并根据需求变化将其适配到非典型应用场景,也成为可延伸性、易修改性或者可塑性。
网友评论