nginx负载均衡算法有哪些_dubbo负载均衡算法

nginx负载均衡算法有哪些_dubbo负载均衡算法nginx负载均衡的几种算法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前言: 在 nginx 中,我们通过 upstream 命令来实现的,由 ngx_http_upstream_module 模块提供支持。

nginx 负载均衡算法

  • 1:轮询(默认)
    每个请求按照时间顺序逐一分配到下游的服务节点,如果其中某一节点故障,nginx 会自动剔除故障系统使用户使用不受影响。
  • 2.权重(weight)
    在配置文件中对下游的服务节点指定权重值 weight, weight 值越大则被分配的评率越高,一般这种负载均衡,用于节点的配置情况不一样,有的可能配置高,有的配置低。
  • 3.ip_hash
    对每个请求,针对 ip 进行 hash, 然后分配到后台节点,这样一来,同一 ip 会被固定分配到下游固定服务上。它能够暂时的解决集群环境中容器之间 session 共享的问题,但是不是解决的根本之道,只是权宜之策,我们试想,如果访问的好好的,家里的路由器被重启了,或者运营商分配给你的 ip 地址改变了,那么你再次访问的时候,新的 ip 就可能被分配到新的服务上,之前的 session 也就失效了。
  • 4.least_conn (最少连接调度算法)
    最少连接调度算法,对下游服务中连接情况,优先选择连接数最少的服务分配。
  • 5.least_time (最小响应时间)
    最小响应时间, 计算节点平均响应时间,然后取响应最快的那个,分配更高权重。

upstream 中可附加指令

  • down,表示当前的 server 不参与负载均衡。
  • backup, 预留的备份机,当其他所有非 backup 的机器出现故障或者忙的时候,才会请求 backup 机器,因此这台机器的压力最轻。
  • max_fails,允许请求失败的次数,默认为 1,当超过最大次数时,返回 proxy_next_upstream 模块定义的错误。
  • fail_timeout, 在经历了 max_fails 次失败后,暂停服务的时间,max_fails 可以和 fail_timeout 一起使用。
  • keepalive 连接数 N; 为每个 worker 进程保留的空闲的长连接数量, 可节约 nginx 端口,并减少连接管理的消耗

如何配置?

  • 轮询负载
upstream webserver { 
   
				server 192.168.214.133:80 max_fails=3 fail_timeout=30s;
				server 192.168.214.187:80 max_fails=3 fail_timeout=30s;
		}

测试:

[root@nfs ~]# for i in { 
   1..10};do curl www.a.com/index.html;done
web server 1 page
web server 2 page
web server 1 page
web server 2 page
web server 1 page
web server 2 page
web server 1 page
web server 2 page
web server 1 page
web server 2 page
  • 加权轮询
upstream webserver { 
   
		 server 192.168.214.133:80 weight=3 max_fails=3 fail_timeout=30s;
		 server 192.168.214.187:80 max_fails=3 fail_timeout=30s;
		}

测试:

[root@nfs ~]# for i in { 
   1..10};do curl www.a.com/index.html;done
web server 2 page
web server 1 page
web server 1 page
web server 1 page
web server 2 page
web server 1 page
web server 1 page
web server 1 page
web server 2 page
web server 1 page
  • ip_hash
upstream webserver { 
   
				ip_hash;
				server 192.168.214.133:80 max_fails=3 fail_timeout=30s;
				server 192.168.214.187:80 max_fails=3 fail_timeout=30s;
		}

测试:

[root@nfs ~]# for i in { 
   1..10};do curl www.a.com/index.html;done
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
web server 2 page
  • least_conn 最少连接
upstream webserver { 
   
				least_conn;
				server 192.168.214.133:80 weight=3 max_fails=3 fail_timeout=30s;
				server 192.168.214.187:80 max_fails=3 fail_timeout=30s;
		}

测试:

[root@nfs ~]# for i in { 
   1..10};do curl www.a.com/index.html;done
web server 1 page
web server 1 page
web server 2 page
web server 1 page
web server 1 page
web server 1 page
web server 2 page
web server 1 page
web server 1 page
web server 1 page

原文地址:https://www.exception.site/article/20

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182771.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • thinkphp5 layui分页样式[通俗易懂]

    thinkphp5 layui分页样式[通俗易懂]tp5之layui分页样式1.分页类路径:\thinkphp\library\think\paginator\driverLayui.php<?phpnamespacethink\paginator\driver;usethink\Paginator;classLayuiextendsPaginator{/***上一页按钮…

  • php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]

    php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]在php中字符替换函数有几个如有:str_replace、substr_replace、preg_replace、preg_split、str_split等函数,下面我来给大家总结介绍介绍.一、str_replace(find,replace,string,count)作用:str_replace()函数使用一个字符串替换字符串中的另一些字符。参数描述find必需,规定要查找的值.repla…

  • 关于ModifyStyleEx无效的问题

    关于ModifyStyleEx无效的问题在做MFC时,有时候我们需要显示选择一个项目,比如需要标记所选择的图片控件。我们可以用这个函数:BOOLModifyStyleEx(  DWORD dwRemove,  DWORD dwAdd,  UINT   nFlags)或者BOOLModif

  • 物联网的体系架构概述[通俗易懂]

    物联网的体系架构概述[通俗易懂]物联网物联网有别于互联网,互联网的主要目的是构建一个全球性的信息通信网络,而物联网则侧重信息服务,即利用互联网、无线通信等进行业务信息的传送,服务对象由人转变为包括人在内的所有物品。物联网作为互联网的延伸,通过将智能物件整合到数字世界,面向用户提供个性化和私有化服务。物联网的体系架构应包括如下内涵:网络体系架构、技术与标准体系、资源与标识体系、产业与应用体系、服务与安全体系。(图)USNUSN体系架构是由韩国电子与通信技术研究所在2007年瑞士日内网召开的ITU下一代网络全球标准化会议(NUN-U

  • BigDecimal.setScale()方法实用技巧

    BigDecimal.setScale()方法实用技巧方法使用scale()方法用于格式化小数点setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3setScale(1,BigDecimal.ROUND_UP)进位处理(无论小数如何),2.35变成2.4setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4(目前最常用的金额处理方法…

    2022年10月20日
  • 作为测试负责人如何规范测试团队建设_测试人员如何开展测试工作

    作为测试负责人如何规范测试团队建设_测试人员如何开展测试工作前言:今天是2021年11月17日,我入职新公司工作的第20天,工作也确实比较忙,准确的来说在公司大家都忙,我基本上都是早上7点半起床,晚上12点到家,睡午觉的时间忙中偷闲更新下博客!作为测试负责人如何规范测试团队?一、我的提问二、你会发现存在的问题1、流程不规范2、缺乏沟通3、没有共享文档4、没有输出三、如何做好流程规范1、测试进度及计划面板2、技术评审3、提测规范4、测试用例评审四、如何做好流程规范1、测试进度及计划面板一、我的提问当你来到一个项目不规范的技术团队,你会怎么处理呢?二、你会发现存

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号