• 负载均衡的概念介绍


           普通web应用部署到一台应用服务器上,客户端通过访问应用服务器发送请求,最简单的就是n对1模式,n个客户端访问同一个应用服务器,这种情况当并发量大了,就无法应对,而且,如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难;解决方案便可以横向扩充n台应用服务器,并且客户端访问与应用服务器中间加上负载均衡配置,效果如下图:

    负载均衡能实现的效果主要有三个: 

    1、转发功能:按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。

    2、故障移除:通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。

    3、恢复添加:如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。 

    最常用的负载均衡服务器是Nginx。

    Nginx如何实现负载均衡?

    1、Nginx反向代理

    Nginx利用自身反向代理功能,在conf配置文件中添加反向代理地址,以代理服务器的身份接受客户端发送过来的请求,然后将请求转发给内部网络上的应用服务器,并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器,不过它只负责转发请求,不负责处理。

    2、Nginx转发策略

    Nginx转发请求可按照调度规则通过轮询、ip哈希、URL哈希、权重等多种方式对应用服务器做负载均衡,同时还支持后端服务器的健康检查,也就是上面讲的故障移除和恢复添加功能。

    nginx 的 upstream目前支持的分配算法: 
    1)、轮询(默认) 
          每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,能自动剔除。 
    2)、权重
          通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。 
    3)、ip_哈希算法
          每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。 

    Ps.大家不要看这些东西挺蒙,其实就是在Nginx服务器配置上指定的参数即可实现。 例如配置反向代理地址:proxy_pass,配置转发算法以及session共享 。

  • 相关阅读:
    切换到真正的最高权限 SYSTEM 账户界面
    javascript中replace的正则表达式语法
    微软系统漏洞_超长文件路径打造私人地盘
    JAVA控制台
    PowerPoint绘图笔不能用
    《JavaScript核心技术》
    Catch(...) C++中三个点
    XMLHttp连续调用SEND需要注意的问题
    Wscript中的事件机制
    JavaScript(JS)常用的正则表达式
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302468.html
Copyright © 2020-2023  润新知