zoukankan      html  css  js  c++  java
  • 四层负载均衡与七层负载均衡的区别?

    1.网络7层模型介绍

    2.什么叫做负载均衡?(Load balancing)???

    1.以前业务基本都是用单台机器,提供集中式服务。说白了就是所有的业务都集中在一台服务器下同一个server里;而现在,会把多台机器组成一个集群对外提供服务;但是,业务对外提供的访问入口是不变的;

    比如:www.taobao.com。那么当用户在浏览器输入www.taobao.com的时候如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡在做的事情。

    3.负载均衡的分类

    负载均衡说白就是请求代理转发的一种网络技术,用来在多个PC(计算机集群)、网络连接、CPU、磁碟驱动器或其他资源中分配负载。以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。有二层负载,三层负载,最常用的是四层和七层负载均衡

    二层,三层,四层,七层负载分类:https://www.cnblogs.com/kevingrace/p/6137881.html

    4.四层负载均衡与七层负载均衡

    1.四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP以外,还包含源端口号及目的端口号。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息(IP+端口号)将流量转发到应用服务器。

    2.七层负载均衡工作在OSI模型的应用层,应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。

    对于一般的应用来说,有了Nginx就够了。Nginx可以用于七层负载均衡。但是对于一些大的网站,一般会采用DNS+四层负载+七层负载的方式进行多层次负载均衡。

    3.四层负载均衡与七层负载均衡对比

    所谓四层即运输层,就是基于 IP + 端口的负载均衡;
    七层即应用层,就是基于 URL 等应用层信息的负载均衡;
    同理,还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡。

    换句换说,
    二层负载均衡会通过一个虚拟 MAC 地址接收请求,然后再分配到真实的 MAC 地址;三层负载均衡会通过一个虚拟 IP 地址接收请求,然后再分配到真实的 IP 地址;


    四层通过虚拟 IP + 端口接收请求,然后再分配到真实的服务器;


    七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器。

    所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。

    比如四层的负载均衡,就是通过发布三层的 IP 地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,
    对需要处理的流量进行 NAT 处理,转发至后台服务器,并记录下这个 TCP 或者 UDP 的流量是由哪台服务器处理的,
    后续这个连接的所有流量都同样转发到同一台服务器处理。

    七层的负载均衡,就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征, 比如同一个 Web 服务器的负载均衡,除了根据 VIP 加 80 端口辨别是否需要处理的流量, 还可根据七层的 URL、浏览器类别、语言来决定是否要进行负载均衡。


    举个例子,如果你的 Web 服务器分成两组,一组是中文语言的,一组是英文语言的,


    那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。

  • 相关阅读:
    把自己电脑搭建为服务器(免费内网穿透心得)
    多态复习
    hadoop 第一个 mapreduce 程序(对MapReduce的几种固定代码的理解)
    Anaconda下的 Jupyter Notebook 安装 多python环境
    C++读写内存工具类X64 X86
    VS中MFC项目文件特别大的解决办法
    python记事本实现查询替换
    java格式化代码(java格式化代码工具类)
    Vue 之 slot(插槽)
    Vue全家桶之——Vuex
  • 原文地址:https://www.cnblogs.com/Alexr/p/10483316.html
Copyright © 2011-2022 走看看