HAProxy,智能分流的负载均衡方案。

写的好,我收藏起来慢慢看. 写的好,我支持一下. 没什么意思,把他踩下去. 该文章被关注了541次,收藏了0次,顶了0次 ,踩了0脚.

以前说过,我最喜欢的一个跑Rails的方式是Nginx在前面,后端采用mongrel或者thin,采用nginx的原因不在多说,想详细了解 nginx的参考我以前的文章,按照道理来说,这样的方案已经很不错了,如果再加上memcached做cach,应该可以顶住不小的压力了。
但是其当时也说到,Nginx的负载均衡到目前为止还是比较简单的轮训算法,他不会检测后端的mongrel是否压力过大,或者是否已经down下去了,这样就会初选,如果其中的一个mongrel挂掉了,nginx还是会把请求分过去的,这样就存在一个问题。

于是就有这么一个需求,能不能监控到后端的mongrel的状况,做智能分发呢?啊哈,是的,可以,HAProxy就可以做到这点。先看个改进版的架构。

ok,比较清晰吧,Nginx接收到请求后,放到RequestQueue中,然后HAProxy从queue中取请求,智能的分发给后端的 App.Server。如此处理的好处就是HAProxy可以判断后端App.Server的负载情况以及是否down机情况,然后做智能分发。

OK,比较清晰了,我们再把Memcached加上,再加上智能判断一台服务器Down掉的情况,我再画个图片,如下:

标签: haproxy, mongrel, nginx, rails
发布时间: 2008-06-15 13:14:00 | 发布者: IceskYsl | 阅读次数:541 回到主页

登录发表你对这个话题的看法吧?



(在注册时提供的email地址)



(注册时设定的密码)
(公共场合请慎用!)

忘记密码了? 还没有注册?