aiCache和Varnish比较。
设计方面:aiCache基于epoll机制,是种无堵塞、零开销、复用IO架构设计,本身没有任何IO瓶颈。它的单进程多线加速设计使一个aiCache实例可以同时 加速多个cpu。 Varnish的加速使用了数千个进程,消耗大量的cpu,而且一个Varnish实例只能加速一个cpu。
动态缓存方面:用Varnish做动态缓存需要写大量的脚本,而aiCache是现成的工具,简单易用。 缓存控制方面,Varnish可以通过purge指令来控制缓存。aiCache可以通过cookie, header, ua、缓存签名添加/减少等来控制缓存,而且有 数种方法实现同步更新。如,通过cookie驱动控制、URL触发缓存更新控制、响应驱动缓存终止(header驱动缓存终止)等功能,让aiCache同步更新一个整体页面或一个网页元素(object)。内容刷新也支持web界面生成的“expire”命令,也可以通过CLI强制终止。另外,aiCache还有缓存参数破坏和查询路径管理等功能,处理更为复杂的网页缓存。
aiCache每秒能处理26万个请求,且能管理巨量的并发连接。
aiCache插件是用C写的独立的小程序。插件支持是指当有请求进入aiCache时,您可以按照自己的逻辑执行,去处理这些请求。您可对所有的请求、某些站点或匹配某模式的请求执行您的逻辑。如,利用aiCache插件,执行访问令牌验证逻辑。Varnish没有插件支持功能。
负载均衡:Varnish只有轮循(Round-Robin), aiCache有三种负载均衡模式:轮循,优先,和权重分配。
CLI: varnish的CLI功能很简单。aiCache有强大的CLI功能。
日志和统计 Varnish日志和统计功能非常弱。aiCache有灵活、强大的日志功能,而且有丰富的实时统计功能。
URL匹配动作:aiCache可对一个URL执行近20个匹配动作。
支持https
手机(网站)支持
四层安防(抵御cc、dos、ddos)
varnish没有智能化的缓存大小管理机制。
即时压缩:
varnish不支持内容压缩
aiCache有强大、零开销的即时压缩功能。
缓存版本:
aiCache可有四种缓存版本:http/1.0和http/1.1;压缩和非压缩。
Varnish只有一个缓存版本。
请求和响应去组块:
为了避免原始服务器遭受虚假或恶意请求的攻击(也为了减少原始服务器
的工作负荷), aiCache总是将组块请求去组块后再发送给原始服务器。同
时,aiCache也总是把原始服 务器给出的组块响应去组块加以验证后再发
送给用户。
(jinmmyzheng#gmail.com)