熟悉一个系统需要了解系统完整的闭环,开发仅仅是其中一个环节,闭环包括
业务流程、业务指标、框架设计,系统部署、运维系统、运维情况、机器负载
另外,还要关注一些关键指标:
日qps、日存储量、qps峰值、请求数、系统失败数、业务失败数
一、系统设计的ASP法则
ASP=(Avalilablity、Scalability、Performance)
可伸缩性(Avalilablity)
1.多机器部署能力
2.并发任务处理能力
3.负载均衡能力
可扩展性(Scalability)
1.动态配置能力(不需要重启应用)
2.插件扩展能力
性能(Performance)
1.Qps
2.吞吐量
3.响应速度
二、评价系统的指标
1.可用性 --- 一年中系统可正常使用的时间,一般要求99.9到99.99
2.可靠性 --- 数据不被丢失的保证,一般要求9个9到11个9
3.可维护性 --- 随着系统扩张,维护增加的边际成本
4.安全性 --- 系统反攻击、反入侵的能力
三、系统设计的常用功能部件
1.负载均衡
a) DNS -- 选择机房
b) LVS -- 在机房中选择机器
2.Cache
a) Memcache -- 1M以下文件,全内存
b) Redis -- 支持多种结构,可持久化到磁盘
c) Couchbase -- 基于memcache的改造,支持分布式、持久化和15M以下文件
3.基本存储
a) Tfs -- 适合图片类(50k-300k)
b) Fdfs -- 适合大文件(1M - 100M)
c) Rocksdb -- 适合小文件(<50k)
4.MQ队列
a)Rabbitmq -- 比较稳定的mq系统
四、高可用灾备部署
1.同城双中心 --- 一主一灾备, 同步复制
2.两地三中心 --- 同城双中心 + 异地灾备中心,异地异步复制
3.异地多活 --- 异地同步复制