网站首页 > 技术教程 正文
1、 使用负载均衡的原因
当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。
2、 Nginx 介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师所开发,其特点是占有内存少,并发能力强,nginx的并发能力确实在同类型的网页服务器中表现非常好。官方测试nginx能够支撑5万并发链接,并且CPU、内存等资源消耗却非常低,运行非常稳定。
当收到大量请求的时候nginx会协调服务器处理请求,合理的分配服务器资源,使得系统更加稳定高效。
很多大公司都在用。Nginx 官网的技术合作伙伴
云服务器合作伙伴
3、 负载均衡的调度算法
1. 轮询方式(round-robin)
调度器通过"轮询"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,每个请求按时间顺序逐一分配到不同的后端服务器,通过配合weight配置可以实现基于权重的轮询;如果后端服务器down掉,能自动剔除。
对应用程序服务器的请求以循环方式分发,假如来了十条请求,十台服务器被一个nginx控制,那么nginx会使十台服务器每台处理一条请求。
加权轮询 (1--10) weight 值越大,分配的几率越大。
有的服务器性能好,有的性能差,那么用加权的方式就可以使服务器资源合理利用。有两台服务器a、b,a的性能好,那么就可以给a加权,让a多处理几条请求,b少处理几条。
这种方式是Nginx 的默认配置方式。
配置方式如下
upstream backend {
server 192.168.0.11 weight=1;
server 192.168.0.12 weight=2;
}
使用场景:服务器的硬件配置一致时,我们可以采用该配置。
2. IP 哈希(ip_hash)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,早期的tomcat 单体应用得较多。
upstream backend {
ip_hash;
server 192.168.0.11 ;
server 192.168.0.12 ;
}
3. 哈希算法 (url_hash)
根据请求的url进行负载均衡,可以使用Nginx 的变量,可以实现一些复杂的算法, 比如按URL的hash结果来分配请求,使每个URL定向到同一个后端服务,URl_HASH 一般配合缓存服务一起使用,提升缓存命中率。
upstream backend {
hash $uri;
server 192.168.0.11 ;
server 192.168.0.12 ;
}
4. 最少连接(least_conn)
请求将被传递给当前拥有最少活跃连接的server,如果配置的服务器较少,则将转而使用基于权重的轮询算法。
在连接负载最少的情况下,nginx会尽量避免将过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,避免服务器过载
upstream backend {
least_conn;
server 192.168.0.11 weight=1;
server 192.168.0.12 weight=2;
server 192.168.0.13 weight=2;
}
今天的分享就到这里了,大家有没有好的方法呢 ,欢迎来留言区评论 我们一起交流学习 ,如果喜欢我的文章 欢迎点赞和转发。
@程序员白老哥 专注分享 《高并发架构设计》 #知识创作者#
猜你喜欢
- 2024-10-12 压力测试工具-ab工具(压力测试教程)
- 2024-10-12 java项目测试环境搭建(java环境搭建实验报告)
- 2024-10-12 jmeter压测实战总结(jmeter压测方案)
- 2024-10-12 Nginx负载均衡的原理及处理流程(nginx负载均衡的三种方式)
- 2024-10-12 如何对ESB平台进行性能测试(如何对esb平台进行性能测试)
- 2024-10-12 kubenetes v1.23.0-实战六 集群部署nginx测试
- 2024-10-12 linux 系统生成测试 SSL证书 nginx|https|http2|quic
- 2024-10-12 Web应用服务器性能压力测试(什么工具可以对web服务器进行压力测试)
- 2024-10-12 简单的视频推流测试(ffmpeg+nginx)
- 2024-10-12 利用docker 单机测试nginx的5种负载均衡
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)