数据密集型应用系统设计-笔记(1)

一个系统设计除了完成应该有的功能,这是功能性需求。但评判一个系统的好与坏,还需要非功能需求来衡量。本书通过可靠性,可扩展性、可维护性来作为目标。
一、可靠性 硬件故障
【数据密集型应用系统设计-笔记(1)】当硬盘崩溃,内存故障,电网停电等状况发生时,可以通过多机冗余来解决。还可以通过软件容错来容忍多机失效,如滚动升级。
软件错误
因为软件bug导致的系统错误,只能通过加强测试解决。
人为失误
以最小出错的方式来设计系统、分离出最容易出错的地方。
设置详细而清晰的监控子系统
二、可扩展性
可以通过QPS描述负载,通过P99来描述系统性能
无状态服务可以轻易扩展至多台机器,分布式系统。
三、可维护性
通过抽象简化复杂度
可演化

    推荐阅读