博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
●Misbehaving servers(服务器停止运转)
阅读量:7221 次
发布时间:2019-06-29

本文共 1043 字,大约阅读时间需要 3 分钟。

 

  (服务器停止运转)
         Varnish的一个关键特色就是它有能力防御web和应用服务器宕机。
Grace mode
         当几个客户端请求同一个页面的时候,varnish只发送一个请求到后端服务器,然后让那个其他几个请求挂起等待返回结果,返回结果后,复制请求的结果发送给客户端。
         如果您的服务每秒有数千万的点击率,那么这个队列是庞大的,没有用户喜欢等待服务器响应。为了使用过期的cache给用户提供服务,我们需要增加他们的TTL,保存所有cache中的内容在TTL过期以后30分钟不删除,使用以下VCL:
sub vcl_fetch {
 set beresp.grace = 30m;
}
 
Varnish还不会使用过期的目标给用户提供服务,所以我们需要配置以下代码,在cache过期后的15秒内,使用旧的内容提供服务:
sub vcl_recv {
 set req.grace = 15s;
}
 
你会考虑为什么要多保存过去的内容30分钟?当然,如果你使用了健康检查,你可以通过健康状态设置保存的时间:
if (! req.backend.healthy) {
   set req.grace = 5m;
} else {
   set req.grace = 15s;
}
         
Saint mode
                   有时候,服务器很古怪,他们发出随机错误,您需要通知varnish使用更加优雅的方式处理它,这种方式叫神圣模式(saint mode)。Saint mode允许您抛弃一个后端服务器或者另一个尝试的后端服务器或者cache中服务陈旧的内容。让我们看看VCL中如何开启这个功能的:
sub vcl_fetch {
 if (beresp.status == 500) {
    set beresp.saintmode = 10s;
    restart;
 }
 set beresp.grace = 5m;
}
                   当我们beresp.saintmode 10秒,这个url的请求varnish将在10秒内不访问服务器。一个黑名单,或多或少。一个restart就会执行,如果您有其他的后端有能力提供这些服务器内容,varnish会尝试他们。当您没有可用的后端服务器,varnish将使用它过期的cache提供服务内容。
                   它真的是一个救生员。
God mode
                   还未应用。
本文转自 fenghao.cn 51CTO博客,原文链接:http://blog.51cto.com/linuxguest/360526,如需转载请自行联系原作者
你可能感兴趣的文章
Spring IOC
查看>>
Fragment的onCreateView和onActivityCreate之间的区别(转)
查看>>
AC日记——统计难题 hdu 1251
查看>>
在仿真器中运行时跳过Windows Azure Startup任务
查看>>
android 获取路径目录方法以及判断目录是否存在,创建目录
查看>>
数列问题[HAOI2004模拟]
查看>>
2012各大IT公司校招笔试题整理
查看>>
phpcms 后台分页
查看>>
《需求工程》阅读笔记之六
查看>>
架构阅读笔记5
查看>>
IIS5.1使用虚拟目录部署网站
查看>>
Git 深度学习填坑之旅三(分支branch、远程操作)
查看>>
括号匹配问题
查看>>
UVA 10766 Organising the Organisation
查看>>
「美团 CodeM 复赛」城市网络
查看>>
python 将Excel表格中的一列数据转化成多行数据
查看>>
Go多线程与channel通信
查看>>
找水王
查看>>
多个线程之间共享数据的方式(卖票问题,存取款问题)
查看>>
观察者模式
查看>>