设为首页 收藏本站
查看: 1599|回复: 0

[经验分享] 负载均衡软件HAProxy架构学习

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-5-28 09:07:28 | 显示全部楼层 |阅读模式
一 应用场景描述
我们将要上线的一款手游后端游戏代码采用HAProxy+Keepalived+后端服务器的方式来部署。HAProxy根据游戏域名进行负载均衡,Keepalived为HAProxy提供高可用方案。最近有空就深入研究了一下HAProxy的官方架构文档。这里提一下,很多游戏公司在部署游戏服的时候,没有采用负载均衡的方式,而是采用一台服务器上部署很多个区服这种模式,实际上根本不能达到节省系统资源的目的,因为一台服务器能够承载的游戏区服是不好控制的,这种模式也不好对后端游戏服务器进行容量规划和动态增减。主要还是运维同事没有和开发同事关于游戏代码部署没有沟通好,如果开发同事在开发期间没有考虑部署的方便性,那后期游戏上线后,运维同事就会一直做些没有技术含量的重复劳作。

二 HAProxy简单介绍
HAProxy是一个为基于TCP和HTTP应用提供免费的,快速的,可靠的高可用功能,负载均衡均衡功能和反向代理功能的方案。它特别适合应用在那些需要高并发访问并需要作七层处理和会话保持的高负载网站。

haproxy-pmode.jpg

目前主要使用的两个版本是1.3和1.4.


三 HAProxy配置案例
HAProxy作者在http://haproxy.1wt.eu/download/1.3/doc/architecture.txt 文档中详细描述了HAProxy相关的配置案例。以下内容主要来自这个文档的翻译。
在以下各个案例中将省略全局配置参数和默认配置参数。使用以下gloabl和defaults配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
global
   
      chroot      /usr/share/haproxy
      log         127.0.0.1 local3 notice                                
      maxconn     65536                                                  
      spread-checks 3      
      
defaults
     
       log         global      
       mode http
       balance     roundrobin                                          
       option abortonclose                                             
       option httpclose                                                   
       option forwardfor except 127.0.0.1                        
       option redispatch                                                  
       timeout client 45s
       timeout connect 45s
       timeout server 45s
       timeout check 10s




案例1.带cookie插入的简单HTTP负载均衡
spacer.jpg wKioL1OEZbiSlj6dAAx9SKgPl0s096.jpg
如上图所示,一台WEB服务器上面运行Nginx和PHP-FPM服务,后端是一台MySQL数据库。由于用户访问量增加,这台WEB服务器的CPU已经趋于饱和状态。MySQL数据库服务器的压力不大。如果将这台WEB服务器替换成一台处理能力更强的高配置服务器,可能比增加同样的几台低配置服务器的成本更高。所以考虑增加几台低配置服务器并部署相同的服务。但是由于一些用户数据如用户会话等没有存储在后端MySQL数据库中,而是存储在WEB服务器上,所以,简单的利用IP或TCP负载均衡调度增加几台WEB服务器将不能满足需求。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-19799-1-1.html 上篇帖子: HA-Proxy+Nginx实现web负载均衡(haproxy篇) 下篇帖子: 双haproxy+双Keepalive实现高可用+动静分离 软件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表