秒杀核心设计——防止超卖、高并发与varnish详解

本文介绍了如何利用Varnish作为HTTP反向代理,降低web服务器负载并提升响应速度。Varnish通过缓存后端服务器的响应,减少重复请求,从而防止超卖问题。在秒杀场景中,Varnish可以有效应对高并发。文章涵盖了Varnish的安装、配置、工作原理以及缓存策略的调整。
摘要由CSDN通过智能技术生成

1、商品详情页面静态化
2、varnish加速
Varnish可以有效降低web服务器的负载,提升访问速度。根据官方的说法,Varnish是一个cache型的HTTP反向代理。
按照HTTP协议的处理过程,web服务器接受请求并且返回处理结果,理想情况下服务器要在不做额外处理的情况下,立即返回结果,但实际情况并非如此。本文将分析在web服务器处理请求的过程中,Varnish能起到什么作用
web服务器的实现千差万别,但典型的处理过程是相同的,都要经过一系列的步骤来处理接收到的每个请求。有可能需要启动一个进程来处理请求,有可能需要从磁盘上载入文件,或者启动内部线程来编译执行一些脚本。在执行脚本的过程中,还会有进行很多别的动作,比如进行数据库查询,读取文件等等。当成百上千个请求并发访问时,服务器的负载会很快上升,出现系统资源不够的情况。一种更糟的情况是,很多请求是重复的,但web服务器无法记住曾经作出的响应,还会重复上面复杂的处理过程。
当把Varnish部署上之后,web请求的处理过程会有一些变化。客户端的请求将首先被Varnish接受。Varnish将分析接收的请求,并将其转发到后端的web服务器上。后端的web服务器对请求进行常规的处理,并将依次将处理结果返回给Varnish。
但Varnish的功能并非仅限于此。Varnish的核心功能是能能将后端web服务器返回的结果缓存起来,如果发现后续有相同的请求,Varnish将不会将这个请求转发到web服务器,而是返回缓存中的结果。这将有效的降低web服务器的负载,提升响应速度,并且每秒可以响应更多的请求。Varnish速度很快的另一个主要原因是其缓存全部都是放在内存里的,这比放在磁盘上要快的多。诸如此类的优化措施使得Varnish的相应速度超乎想象。但考虑到实际的系统中内存一般是有限的,所以需要手工配置一下缓存的空间限额,同时避免缓存重复的内容。
下面来看一下Varnish的安装过程。可以从源码进行安装,也可以直接使用一些发行版中的预编译包。当期Varnish的版本是3.0.3(译者注:目前最新是2013年6月17日发布的3.0.4版),本文将基于3.0.3进行源码安装。需要注意的是,2.X版的Varnish和3.X的配置文件格式发生了变化。可以从Varnish的官方网站上找到2.x到3.x升级的细节。
从源码进行安装经常遇到的问题是系统缺少某些依赖的文件。可以从Varnish的安装文档里找到编译所需的所有依赖的文件。
以root身份运行如下命令来下载和安装Varnish。

cd /var/tmp
wget http://repo.varnish-cache.org/source/varnish-3.0.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值