cache软件设计

cache软件设计
       haproxy作为一个7层负载均衡软件,在很大程度上可以支撑高可扩展的应用服务架构。但是在目前的高性能服务架构设计中,不可或缺的引入了cache层。这样导致应用服务架构层次越来越多。一般情况下会是如下所示:
L4(四层负载均衡)——>L7(七层负载均衡)——>cache(反向代理)——>server(原始服务器)
      在热点比较集中的情况下,可以考虑把L7和cache合并。处于这样的考虑,我们进行了在haproxy上加上简单cache功能的尝试。目前主要把这层cache定位为轻量的cache
      在对cache的设计中主要考虑如下几点:
1、考虑采用mem cache
      主要是考虑采用全mem cache。该方式适合采用热点比较集中的情况。
2、cache淘汰策略
      最优化的淘汰策略是基于单位大小贡献流量和命中。同时,需要考虑策略的时空开销。目前,主要考虑采用LRU,当然也可以选择其他的cache算法。目前这块算法挺多的。
3、过期策略
      采用简单的固定时间过期策略。如果作为一个全cache的,完全采用http1.1协议的两个过期模型,则会增加复杂度。
4、http协议兼容性
      主要考虑cache的多版本,如压缩、非压缩、vary等。
5、并发访问
6、合适的内存管理
7、哈希算法选择
     在哈希算法选择的时候需要充分考虑业务特性,冲突率。

作者: cbin_07   发布时间: 2011-01-04