nginx笔记3-负载均衡算法

1.nginx测试:先从官网下载nginx 官网网址为:http://nginx.org/  然后找到stable version的版本下载,因为这版本是最稳定的,不要去下载最新,因为不稳定,如下图:

下载解压后即可

这里还要对解压后的nginx的conf目录下的nginx.conf配置如下图:

上图中的proxy_pass http://test-service;意思是只有test-service下面的tomcat才能通过我的反向代理。

随后我们启动两个tomcat,把笔记二的工程分别放在两个Tomcat的webapps下,注意两个Tomcat的端口不能冲突。在浏览器输入http://localhost/test_war/index.jsp,如图:

上图显示,没刷新2次浏览器就将请求转发到另外一个Tomcat,这里可以看出,负载均衡的算法默认配置为轮询。

负载均衡的算法:

1.轮询:这是一个最公平的原则,即每N个请求分发给Tomcat1,下一个n个请求分发给tomcat2.再比如,一个有tomcat1为1号,tomcat2为2号,1号那就分给tomcat1,2号就分给tomcat2,3号没有,那么就重新从tomcat1开始。

2.随机算法:通过一定范围的随机数来分发请求给相应的tomcat.当请求量很大时,其实就很接近轮询了。

3.源地址哈希:通过请求来源的IP计算相应的hashCode来分发给相应的Tomcat,只要IP不发生变动请求分发的Tomcat也就固定了。

4.加权轮询:在轮询的基础上增加权重,比如,现在是tomcat1,tomcat2,此时tomcat2加权重4,那么轮询的顺序即tomcat1,tomcat2,tomcat2,tomcat2,tomcat2,tomcat2。

5.加权随机法(Weight Random):跟加权轮询类似一样的做法。比如,tomcat1,tomcat2,此时tomcat2增加权重为4,那么tomcat1,tomcat2,tomcat2,tomcat2,tomcat2,tomcat2,那么tomcat随机分发的时候分发的几率就增大。

6.最小连接数法(Least Connections):根据后端服务器当前的连接情况,动态的选取当前积压连接数最少的一台服务器来处理当前请求。

就算此时其中一个Tomcat挂了,请求服务还能正常访问。因外还有另外一个Tomcat在运行。

原文地址:https://www.cnblogs.com/huangjuncong/p/8319182.html

时间: 2024-10-12 09:34:05

nginx笔记3-负载均衡算法的相关文章

nginx的常用负载均衡算法,分别是

随机分配,hash一致性分配,最小连接数分配,主备分配 随机,轮训,一致性哈希,主备,https://blog.csdn.net/liu88010988/article/details/51547416最小链接数分配,类似于 (第三方负载策略,fair,根据响应时间短的优先分配,https://blog.csdn.net/xyang81/article/details/51702900) https://blog.csdn.net/xyang81/article/details/51702900

互联网研发中负载均衡算法一点探索

负载均衡在线上服务中有着很重要作用,因为一台web服务比如tomcat,能够处理qps(每秒处理请求数) 是有限的.那么就需要有有前端负载均衡服务将大的流量分发为多个后端服务进行处理. 负载均衡产品有硬件F5.有软件,早之前使用Apache较多,目前是使用Nginx多,Nginx架构实现简洁优 雅性能高.LVS.HAProxy是著名软负载工具.说到LVS是由原淘宝章文蒿(目前在滴滴公司)博士领导开发, 是到目前为止Linux内核中网络核心部分,也是国人开Linux内核最高贡献,章博士在国内技术圈

Nginx+Tomcat7+Mencached负载均衡集群部署笔记

Nginx+Tomcat+Memcached负载均衡集群服务搭建 操作系统:CentOS6.5 本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memcached负责同步Tomcat的Session,达到Session共享的目的. 本文文档下载地址:http://download.csdn.net/detail/zht666/7744157 1.安装Nginx Nginx官网:http

Nginx之负载均衡算法

Nginx其中一大特性就是负载均衡,它可以通过扩展它代理的连接来保护你的上游服务器免于过载等问题. 负载均衡算法 upstream模块能够使用3种负载均衡: 1. 轮询 rountd-robin ):在默认情况下,使用轮询算法,它可以不需要配置指令来启用它.该算法选择下一个服务器,基于先前选择,在配置文件中哪一个是下一个服务器,以及每一个服务器的负载权重.轮询算法是基于在队列中谁是下一个的原理确保将访问量均匀地分配给每一个上游服务器的. 2. IP哈希(IP hash):通过ip_hash指令启

nginx(负载均衡算法)

1.nginx负载均衡算法1)轮询(默认)每个请求按照时间顺序逐一分配到不同的后端服务,如果后端某台服务器宕机,自动剔除故障主机,使用户访问不受影响.2)weight(轮询权值)weight的值越大,访问概率越高,主要用于后端每台服务器性能不均衡的情况下.或者仅仅为在主从的情况下设置不同的权值,达到合理有效的利用主机资源.3)ip_hash每个请求按照访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题.4)fair比weig

nginx笔记4-负载均衡带来的问题以及解决办法

接着笔记3,将笔记三的改造一下,现在分别启动两个Tomcat,在页面获取session.如图所示: tomcat2的session: tomcat1的session: 根据上图发现,每个tomcat取到的session不一样.因此nginx负载均衡带来的问题就是session不一致,假设用户登陆后请求分发到Tomcat1,下一次请求到tomcat2的话, 那么每一次请求都会要求用户登陆.这必然不行的. 解决session共享问题办法有: 1.应用服务器(即Tomcat)之间进行session同步

Nginx/LVS/HAProxy负载均衡软件的优缺点

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

负载均衡算法及手段

负载均衡器 可以是专用设备,也可以是在通用服务器上运行的应用程序. 分散请求到拥有相同内容或提供相同服务的服务器. 专用设备一般只有以太网接口,可以说是多层交换机的一种. 负载均衡器一般会被分配虚拟IP地址,所有来自客户端的请求都是针对虚拟IP地址完成的.负载均衡器通过负载均衡算法将来自客户端的请求转发到服务器的实际IP地址上. 负载均衡算法 private Map<String,Integer> serverMap = new HashMap<String,Integer>(){