系统设计 — 缓存

现在的软件系统设计中,基本上已经很难脱离缓存的去考虑问题,或者已经不能脱离缓存,在不同的层面有不同的缓存,我们现在使用的互联网的一些基础设施也都在使用缓存,那么就先看看缓存的优缺点吧。
优点:
1.提高系统的响应速度,就数据放在离用户最近的地方,让请求直接从缓存中获取数据,而不是每次都需要到服务器进行加载。
2.减少网络带宽压力,在存在大量并发请求的情况下,很多时候网络带宽会成为瓶颈,而从缓存中获取数据能够降低服务端的带宽压力
3.减少服务端的负载压力,一般服务的资源包含CPU,内存,连接数,磁盘等等(网络归属到外部资源中),这些资源是非常有限的,对于一些请求能够通过缓存很好的处理掉,那么就能腾出更多的资源去处理其他更重要的业务
4.在网络失效的情况下,亦能提供一个静态的服务
缓存和无状态约束
WEB的关键架构原则之一就是服务器和服务不应维护应用的状态。这个约束有助于分布式应用的容错和横向扩展。但是缺点也很明显,由于应用的状态不会持久保存在服务商,那么每次请求都需要和服务器交换应用的状态。这个就会增加消息的大小和带宽的消耗(在上章也提到了),缓存也就能很好的解决这个问题,将会话信息保留在离客户端最近的地方。

阅读全文…