编号 名称 描述 解决问题 适用场景 绝对不可用场景 衍生问题 优点 缺点 推荐开源项目
1 缓存 在数据源之前增加一层或多层数据缓存,降低访问低性能数据源的频次或减少网络/IO开销,以达到提升性能的目的。 1. 高并发性能 1. 读多写少的业务
2. 读场景下热点数据命中率高
3. 多数据的更新展示时延要求较低
  1. 热点数据分布不均匀,还是可能导致 cache 物理机成为访问热点,引发问题
2. 如果存在回源策略,则在 cache 失效时,要注意短时间内大量回源请求发生,引发雪崩
3. 要考虑 cache 的整体容量
1. 目前最常见的解决方案,整体技术栈成熟,相关资料丰富   1. [YAC](https://github.com/laruence/yac)
2. [redis](https://redis.io)
3. [memcached](https://memcached.org)
2 离线数据预热 将复杂计算逻辑从实时处理中抽离,提升实时访问时的性能。 1. 高并发性能 1. 数据更新频率低
2. 数据更新入口可控
3. 整体数据容量可控
  1. 读写逻辑比较分散,会降低代码可读性
2. 所有预热的逻辑需要做统一管理,还需要和读取逻辑做关联
     
3 压测 如何做压测? 评估性能、资源预分配 任何新增接口或较大变更的接口建议做压测   1. 如何加压?
2. 配置差异的影响
3. 上下游依赖的情况下怎么压
     
4 重传和超时 不同场景下重传和超时策略? 可靠性、响应时间可控 1. 合理超时避免异常时负载飙升   1. 非幂等接口避免重传
2. 超时参数要考虑上游的超时情况?
     
5 性能监控 现有工具有哪些?(阿里云、openfalcon、线上日志或Kafka、命令等) 日常运维、性能优化            
6 服务发现和注册 业务平台有用Consul做统一路由中心,但有单点风险,利弊   1. 接口分散
2. 加密认证方式各不相同
  是个大单点      
7 降级机制 目前我们用的Etcd+Confd,但用于db的账号和地址的变更;另外通过SLB做后端服务器流量控制   容灾方案          
8 异步化 异步处理的方式有哪些(队列、DB、fastcgi_finish_request?)?适用范围?可能问题 解耦 触发事件   1. 异步任务通知      
9 SQL vs. NoSQL

数据存储方案有哪些?

什么场景选用什么方案有什么评判标准么?

数据存储 数据存储