由于在最近参加的一个项目的技术架构中用到了F5和Nginx,本着用到啥就学啥的态度,在这里对这两种负载均衡的方式进行一下学习记录

首先我们要了解这几个问题:
  • 什么是负载均衡?
  • 负载均衡的作用是什么?
  • 负载均衡器如何选择要转发的后端服务器?
  • 我们经常使用的负载均衡策略有?
  • 负载均衡可以处理的的请求形式?
下面我们就一一进行学习记录
  1. 什么是负载均衡?
    负载均衡是高可用系统中的一个重要组件,主要用于将前端的请求任务分配给多个服务器进行处理,从而减缓服务器的工作压力,提高前端请求的反馈速度,提高网站、应用、数据库或其他服务的性能和可靠性.

  2. 负载均衡的作用是什么?
    负载均衡以及多服务器的引用可以缓解单服务器由于请求量大或者服务器发生宕机,导致前端页面请求失败的情况.
    负载均衡可以用作服务转发,当请求经过负载均衡的时候,他会按照一定的规则,将请求分配给合适的服务器,从而达到减缓耽搁服务器压力过大的问题.

  3. 负载均衡器如何选择要转发的后端服务器?
    负载均衡器一般根据两个因素来决定要将请求转发到哪个服务器。首先,确保所选择的服务器能够对请求做出响应,然后根据预先配置的规则从健康服务器池(healthy pool)中进行选择。
    因为,负载均衡器应当只选择能正常做出响应的后端服务器,因此就需要有一种判断后端服务器是否「健康」的方法。为了监视后台服务器的运行状况,运行状态检查服务会定期尝试使用转发规则定义的协议和端口去连接后端服务器。如果,服务器无法通过健康检查,就会从池中剔除,保证流量不会被转发到该服务器,直到其再次通过健康检查为止。

  4. 我们经常使用的负载均衡策略有:
    - 轮询:服务请求按照服务器的顺序依次进行分配
    - 最少链接:请求首先会分配给被请求次数最少的服务器
    - 请求ip的hash值分配:按照请求的ip的hash值急性分配,这种方式可以指定请求用制定的服 务器进行处理

  5. 负载均衡可以处理的的请求形式:

    • HTTP
    • HTTPS
    • TCP
    • UDP

下面附上一张网图(如有侵权,请联系本人删除),可以清楚的展示负载均衡的工作原理:
在这里插入图片描述

以上是负载均衡的一些知识点,下面我们再对F5和Nginx进行对比分析

  1. 本质区别
    F5是一种物理负载均衡器,Nginx是一种高性能支持HTTP请求的反向代理服务器,属于软件负载均衡器

  2. 实现负载均衡的原理
    F5实现负载均衡的原理这里不做过多介绍,属于硬件的计算机知识,目前本人不需要了解太深,只需要知道可以用作负载均衡即可,如果向深入学习,可以参考http://www.elecfans.com/baike/wangluo/fuzaijunheng/20171229609080.html
    Nginx实现负载均衡的原理是:
    采用的是反向代理技术,代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器

  3. 优缺点分析
    (1)F5:
    优点:F5属于硬件,能够直接通过智能交换机实现,处理能力更强,而且与系统无关,只是从网络层来判断,负载性能强,适用于一大堆设备、大访问量、简单应用
    缺点:成本高,配置冗余
    (2)Nginx
    优点:基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负载。性价比高
    缺点:负载能力受服务器本身性能的影响,性能越好,负载能力越大

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐