DDIA读书笔记 1 可靠、可扩展与可维护的应用系统

1 可靠、可扩展与可维护的应用系统

1.1 认识数据系统

  • 系统中的常见模块:数据库,缓存,索引,流式处理,批处理等等
  • 系统的需求越来越广泛,需要将任务分解,每个组件负责高效完成其中一部分,多个组件依靠应用层代码驱动有机衔接起来。
  • 面临的问题:可靠性,可扩展性和可维护性

1.2 可靠性

  • 可靠性:即使发生了某些故障(faults),系统仍可以继续正常工作
  • 3种故障及应对方法:
    • 硬件故障
      • 为硬件添加冗余,如对磁盘配置RAID,双电源,热插拔CPU等。
      • 通过软件容错补充
    • 软件错误
      • 检查评估软件bug,监控
    • 人为失误(如配置错误)
      • 分离容易出错的地方,充分测试,快速回滚配置,监控系统

1.3 可扩展性

  • 可扩展性:负载增加时,有效保持系统性能的相关技术策略
  • 系统性能评价指标
    • 吞吐量:单位时间内处理的数据量
    • 响应时间:客户端从发送请求到接收响应之间的间隔
  • 不建议使用性能数据的平均值来考察性能,最好使用百分数和中位数
    • 响应时间中位数小于200ms(意味着一半的用户在200ms内收到响应)
  • 应对负载增加的方法
    • 垂直扩展:升级到更强大的机器
    • 水平扩展:将负载分布到更多更小的机器
    • 垂直扩展和水平扩展之间做取舍
      • 无状态服务扩展到多台机器容易,有状态服务扩展到多台机器复杂,需要取舍,比如可以将数据库垂直扩展,其他水平扩展
    • 没有通用的系统,需要针对应用进行定制
      • 考虑的因素:数据读取量、写入量、待存储的数据量、数据的复杂程度、响应时间要求,访问模式
      • 哪些操作是频繁的

1.4 可维护性

  • 三个设计原则:可运维性,简单性,可演化性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值