varnish 2.0 load balancing

varnish 是一个高效的 HTTP accelerator, 目前的稳定版本是 1.1.1 不过有个大 bug,预计下下周就会出 1.1.2

目前正在开发的 2.0 版本有一些非常有意思的改进,最重要的就是对 load balancing 的支持。 从目前的 trunk 里面可以看到,其功能已经基本实现,目前支持 round robinweighted random 两种算法对后端进行负载均衡,同时对后端服务器也有简单的健康检查机制

负载均衡的一组后端在 vcl 中也是一个 backend, 不过有较特殊的定义语法。

backend_round_robin rr {
set backend.set = {
{ "foo1.bar.com", "http" }
{ "foo2.bar.com", "http" }
{ "foo3.bar.com", "http" }
};
}

这就定义了一个名字为 rr 的 backend, 它对应的是一组使用 round robin 算法负载均衡的后端

backend_random rrr {
set backend.set = {
{ "foo1.bar.com", "http", 0.3 }
{ "foo2.bar.com", "http", 0.6 }
{ "foo3.bar.com", "http", 0.1 }
};
}

这则是定义了一个名字为 rrr 的backend, 它对应的是一组使用 weighted random 算法负载均衡的后端,花括号中的小数是每个后端的权重,可选,默认是每个后端分配相同的权重。

具体参见: #1931

找时间测了一下,功能已经基本可以用,不过测试的过程中 varnish 经常当掉,XD

2 thoughts on “varnish 2.0 load balancing”

Leave a Reply

Your email address will not be published. Required fields are marked *