Haproxy负载均衡集群架构设计一例

公司最近有一个项目由于用户担心一台单机无法承担最多用户量的使用,要求上应用集群。我们根据应用情况设计了应用集群架构。

架构图如下:

逻辑架构

部署应用集群的特点:

1. 前端代理负载均衡

因用户环境基础架构采用虚拟化集群平台,服务器均采用虚拟机实现,所以设计时采用单台Haproxy来实现。

前端选用haproxy:有一最大的特点HTTP第7层键康状态检查,与我们实际需要一致,因经常有应用压力大,应用无法响应的情况,正好通过这一个特性进行健康状态检查,保证用户透明访问。之前有采用haporxy的主备模式做双机主备应用集群。主备模式也是haproxy的一大特点。

本方案是采用负载均衡模式采用source模式。

 

2. 应用服务器会话复制

配置jboss 应用会话复制功能,保证用户登录会话三台服务器共享。

 

3. 共享存储空间

共享存储空间是集群应用的一个必备的功能,这里采用nfs来实现。用来实现代码与附件等数据一致。

 

4. haproxy配置要点文件记录如下:

 

(1) 取消将日志记录在/var/log/messages目录中

默认会也将haproxy日志记录在/var/log/message中,要去掉。

1
2
3
4
# vi /etc/syslog.conf
local3.*                       / var /log/haproxy.log
local0.*                       / var /log/haproxy.log
*.info;mail.none;authpriv.none;cron.none;local3.none      / var /log/messages

 

(2) haproxy日志切割

haproyx日志切割脚本,没有现成的,就专门写了一个日志切割脚本来实现每天的日志切割,加入到计划任务中,一定要su root -c 强制root权限执行。如果要保留访问日志,可以修改脚本实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
# author: koumm
# desc:
# date:  2013 - 01 - 31
# version: v1. 0
# modify:
# cut haproxy log
mv / var /log/haproxy.log / var /log/haproxy.log.bak
if  [ -e / var /log/haproxy.log.bak ]; then
logrotate -f /etc/logrotate.conf
chown nobody:nobody / var /log/haproxy.log
chmod +x / var /log/haproxy.log
fi
sleep  1
if  [ -e / var /log/haproxy.log ]; then
rm -rf / var /log/haproxy.log.bak
fi

 

(3) haproxy配置文件记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
global
log     127.0 . 0.1    local0
maxconn  65535
chroot /usr/local/haproxy
uid  99
gid  99
stats socket /usr/local/haproxy/HaproxSocket level admin
daemon
nbproc  1
pidfile /usr/local/haproxy/haproxy.pid
#debug
defaults
log     127.0 . 0.1     local3
mode   http
option httplog
option httplog clf
option httpclose
#option dontlognull
option forwardfor
option redispatch
retries  2
maxconn  2000
balance source
#balance roundrobin
stats   uri     /haproxy-stats
stats   refresh 10s
contimeout       5000
clitimeout       50000
srvtimeout       50000
listen  APP_Cluster  0.0 . 0.0 : 80
mode http
option httpchk GET /test.html HTTP/ 1.0 \r\nHost: 192.168 . 0.110
server  192.168 . 0 .111_node1   192.168 . 0.111 : 80  weight  3  check inter  2000  rise  2  fall  1
server  192.168 . 0 .112_node2   192.168 . 0.112 : 80  weight  3  check inter  2000  rise  2  fall  1
server  192.168 . 0 .113_node3   192.168 . 0.113 : 80  weight  3  check inter  2000  rise  2  fall  1
listen  stats_auth  0.0 . 0.0 : 91
mode  http
stats enable
stats uri  /admin
stats realm  "LOGIN"
stats auth  admin: 123456
#stats hide-version
stats refresh 10s
stats admin  if  TRUE

 


本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1282152,如需转载请自行联系原作者



优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/428723

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。