当面临高流量、高可用性、水平扩展、会话保持或跨地域流量分发等需求时,单台服务器受限于硬件资源、性能有限不能满足应用场景的并发需求量时,引入负载均衡器部署多个服务器共同处理客户端的并发请求,可以帮助优化系统架构,提高系统的性能、可靠性和可扩展性。
1.简介
负载均衡器(Load Balancer)是一种网络设备或服务,用于在多个服务器之间分配和平衡网络流量,以提高系统的性能、可靠性和可扩展性。
负载均衡器的主要功能包括:
-
流量分发:负载均衡器接收来自客户端的请求,并将请求分发给后端的多个服务器。它使用各种算法(如轮询、最小连接数、源IP哈希等)来决定将请求发送到哪个服务器。
-
健康检查:负载均衡器定期检查后端服务器的健康状况,例如通过发送心跳请求或监测服务器的响应时间。如果某个服务器故障或不可用,负载均衡器将停止将流量发送到该服务器,确保只将请求发送到正常工作的服务器。
-
会话保持:对于需要保持会话状态的应用程序,负载均衡器可以使用不同策略来确保用户的请求都被发送到同一台服务器,以维持会话的一致性。
-
扩展性和容错性:通过将流量分布到多个服务器上,负载均衡器可以提高系统的吞吐量和可扩展性,并提供容错功能。如果某个服务器故障或超载,负载均衡器可以自动将流量重新分配给其他健康的服务器,确保应用程序的持续可用性。
负载均衡器可以是硬件设备(如专用的负载均衡器硬件)或软件实现(如Nginx、HAProxy等)。它在分布式系统、网站和服务器集群中被广泛使用,以提供高可用性、高性能和可伸缩性。
2.Ubuntu环境配置nginx
tar -zxf yourfile.tar.gz
./configure --with-stream
缺失PCRE 库
进入root用户编译
sudo su
make && make install
nginx配置tcp负载均衡
一致性哈希算法(需要插件,没有可以注释掉,不然无法做到负载均衡)
配置完成后,./nginx -s reload重启
启动nginx服务
sudo systemctl start nginx
检查nginx服务状态
sudo systemctl status nginx
重新加载配置文件启动
./nginx -s reload
停止nginx服务
./nginx -s stop