接口并行压力的解决方案大致分为三部分:
1. 通过压力测试,找到哪部分压力过大,通过代码优化的方式逐步解决。(略)
2. 通过硬件,接口分布在多台服务器上,通过分而治之的思想解决。
3. 通过软件技术,做一个负载均衡集群。
推荐方案:
Keepalived+LVS+Nginx负载均衡之高可用
Keepalived:Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问题。
Nginx:负载均衡问题。
系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行。针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求。所以系统架构引入Keepalived组件,实现系统高可用。
Keepalived技术原理(点击右边的小三角可以合并展开)
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。通过VRRP协议结合LVS,对组群服务器监控情况,若master出现宕机情况,则将VIP漂移到backup机上。实现了分布式系统高可用。可以理解为:keepalived是LVS的管理软件,根据监控情况,将宕机服务器从ipvsadm移除掉。
负载均衡概述(点击右边的小三角可以合并展开)
通过服务器负载均衡的方式解决接口并发压力,通俗的来讲,多个服务器组成的这样一个系统,我们称之为服务器均衡系统。
负载均衡组成的方式:负载均衡的服务器(管理器)和被均衡的服务器集群(客户机)。
负载均衡管理器,是整个负载均衡的控制服务器(DR),所有用户的请求都要先经过这台服务器,然后由此服务器根据各个实际处理服务器状态将请求具体分配到某个实际处理。
服务器中,用户是感觉不到后端的服务器的,他们只看到当前这台DR服务器。DR服务器只负责转发和安装相应的管理软件,所以一般企业负载均衡服务器非常重要,但是资源使用非常少,所以不必用非常高的配置来担当负载均衡管理器。
负载均衡分类:软/硬件
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。
硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。
一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。
部署方式:路由模式
负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。
路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。约30%的用户采用这种模式。
服务器的网关必须设置成负载均衡机的LAN口地址,且与WAN口分属不同的逻辑网络。因此所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。
应用场景
在当业务系统服务器无法支撑当前的业务量时,用户可以选择更高性能的服务器。但更为合理的做法是通过在既有业务服务器基础上,增量的方式增加相同功能的服务器,将计算任务分摊到后台多台较低配置的服务器处理,每台服务器都可以响应服务请求。实现合理安排客户请求并加快了请求相应速度,来提高用户体验。而用户仅感受到是一台高性能服务器在提供服务。
负载均衡硬件
名称参数优势
F5 BIG-IP LTM 3900处理器:单 CPU 基本内存:8GB 硬盘:500GB
端口:8 个千兆端口,4
个可选千兆光纤端口
全面的负载均衡,应用状态监控,高可用性和交易保 障,广域流量管理器,链路控制器;智能应用交换,智能压缩,灵活的第
7 层速率
整形
深信服 AD-2000吞吐性能:2Gbps
网口配置:6 个千兆电口、2 个千兆光口尺寸:标准 2U
电源:单电源(可选配冗余电源)
包含链路负载均衡、服务器负载均衡、全局负载均衡、商业智能分析功能,以及缓存、压缩、SSL 卸载、TCP 连接复用等优化特性。支持单边加速功能,提高低质量网络环境下远端用户的访问速
度
Array APV 3520网络端口配置:12 或 16 个 10/100/1000Base-
TX,4 个 SFP 插槽 控制端口:Male DB9 系列
(RS232)端口
背板带宽:48G/52G 4 层吞吐量:4G
交流电源:100-240VAC,63-
47Hz,冗余电源,热插拔
梭子鱼 Model
340(BSFI340-e3
每秒连接 50,000CPS,支持多达 35 台服务器,最大并发连接数 2,000,000,SSL 加速 150TPS,应用程序吞吐 1000M,快速 4-7 层负载均衡,web 管理界面,强大 IP 保持能力,7 层 cookie 保持,支持
TCP/UDP 负载均衡
提供路由及桥接模式,强大的
DDoS 防护,灵活的计划选择, 服务访问控制表,应用程序智能
FoundryServerIronXL(FCSLB24)24-端口 10/100Base-TX(RJ-45)ServerIronXL,具有
1 个扩展插槽,集成的 2-7
层交换
高可用的服务器负载均衡,强大的内容交换,可根据 URL,
Cookie 和 SSL Session ID 交换,透明缓存交换,高性能
VPN/Firewall 负载均衡,链路
负载均衡
负载均衡软件
名称说明优点缺点
Nginx基于 Linux 的开源免费的负载均衡软件, 适 用 于 中 小 型 的 Web 应用、Web 前端1.工作在网络的 7 层之上,可针对
http 应用做一些分流的策略;
2.Nginx 对网络稳定性的依赖非常小;
3.以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量,负载度比 LVS 相对小些;
4.可通过端口检测到服务器内部的故
障;可作为中层反向代理使用。
1.Nginx 仅能支持 http、
https 和
Email 协议,这样就在适用范围上面小些。
2.对后端服务器的健康检查,只支持通过端口来检测,不支持通过 url 来检测。不支持 Session 的直接保持,但能通过
ip_hash 来解决
LVS基于 Linux 的开源免费的负载均衡软件, 大型网站或重要的服务,且服务器比较多时 , 可 以 考 虑 用 LVS。后端采用MySQL 数据库一主多从和读写分离,采用
LVS+Keepalived 的架构。
1.抗负载能力强,是工作在网络 4 层之上仅作分发之用,没有流量的产
生,对内存和 cpu 资源消耗比较低。
2.配置性比较低,大大减少了人为出错的几率。
3.工作稳定,其本身抗负载能力很强,自身有完整的双机热备方案,如LVS+Keepalived
。 4.无流量,LVS 只分发请求,而流量并不从它本身出去,这点保证了均衡
器 IO 的性能不会收到大流量的影响。
5.应用范围较广,LVS 工作在
4 层, 它几乎可以对所有应用做负载均衡, 包括 http、数据库、在线聊天室等
等。
1.软件本身不支持正则表达式处理,不能做动静分离;而现在许多网站在这方面都有较强的需求, 这个是
Nginx/HAProxy+Keepalived
的优势所在。
2.如果是网站应用比较庞大的话,
LVS/DR+Keepalived 实施起来就比较复杂了,特别后 面 有 Windows Server 的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,
Nginx/HAProxy+Keepalived
就简单多了。
Haproxy基于 Linux 的开源免费的负载均衡软件, 适用于 Web 前端1.支持虚拟主机。
2.支持
Session 的保持,Cookie 的引导;同时支持通过获取指定的 url 来检测后端服务器的状态。
3.比 Nginx 有更出色的负载均衡速度,在并发处理上也优于 Nginx。
4.支持 TCP 协议的负载均衡转发。
5.HAProxy 负载均衡策略非常多。
针对域名、目录结构,它的正则规则没有 nginx 比
HAProxy 强大和灵活
网友评论