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,如需转载请自行联系原作者



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5天前
|
缓存 负载均衡 监控
探索分布式系统演进之路:从负载均衡到微服务架构
小米分享了分布式系统的发展,从早期的负载均衡(入口级、网关和客户端)到微服务架构的演进。微服务实现服务解耦,增强系统弹性,但带来了新的挑战。为优化数据库性能,实施了主备读写分离、全文搜索引擎、缓存集群等措施。通过微服务治理,如服务注册、动态配置、灰度发布等,提升了系统稳定性和可靠性。未来将继续优化分布式系统,提供更好的服务体验。关注公众号“软件求生”了解更多。
26 6
|
6天前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件
|
6天前
|
存储 监控 关系型数据库
关系型数据库设计集群架构节点规划
【5月更文挑战第6天】在实际项目中,可能还需要考虑其他因素,如安全性、合规性、成本等。因此,在进行关系型数据库设计集群架构节点规划时,建议与经验丰富的数据库管理员和架构师合作,以确保项目的成功实施和稳定运行。
23 4
关系型数据库设计集群架构节点规划
|
6天前
|
存储 负载均衡 关系型数据库
关系型数据库设计集群架构架构选择
【5月更文挑战第6天】还可以考虑使用现有的数据库管理系统(DBMS)提供的集群解决方案,如MySQL的InnoDB Cluster、PostgreSQL的Streaming Replication和Patroni等。这些解决方案已经经过了广泛测试和验证,可以大大降低集群架构设计和实现的难度。
19 1
关系型数据库设计集群架构架构选择
|
6天前
|
分布式计算 负载均衡 关系型数据库
关系型数据库设计集群架构需求分析
【5月更文挑战第6天】关系型数据库设计集群架构的需求分析是一个综合考虑业务需求、性能、可用性、可扩展性、数据一致性、安全性、成本效益和技术选型等多个方面的过程。通过深入分析和评估,可以设计出满足业务需求且高效可靠的数据库集群架构。
24 3
关系型数据库设计集群架构需求分析
|
6天前
|
缓存 监控 负载均衡
关系型数据库设计集群架构
【5月更文挑战第5天】关系型数据库设计集群架构
22 3
关系型数据库设计集群架构
|
6天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
6天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
6天前
|
负载均衡 应用服务中间件 nginx
服务器架构、分布式系统、负载均衡、微服务、高可用性
**分布式系统取代单体架构,以微服务实现高扩展性和灵活性。通过负载均衡技术增强性能,防止单点故障,结合冗余备份与故障切换保障高可用性,这种架构是支撑大规模在线业务的关键。**
48 3
|
6天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结