关于DNS负载均衡技术

关于DNS负载均衡技术在学习负载均衡技术的时候,我们肯定会学到dns负载均衡的相关内容,因为这个是负载均衡的一个代表应用。那么说到应用,到底是如何进行使用,改善网络问题的呢?那么本文就将为大家详细介绍一下其中的原理。为了建立一个高负载的Web站点,必须使用多服务器的分布式结构?上面提到的使用代理服务器和Web服务器相结合,或者两个Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每个服务器所

大家好,又见面了,我是你们的朋友全栈君。

在学习负载均衡技术的时候,我们肯定会学到dns负载均衡的相关内容,因为这个是负载均衡的一个代表应用。那么说到应用,到底是如何进行使用,改善网络问题的呢?那么本文就将为大家详细介绍一下其中的原理。

为了建立一个高负载的Web站点,必须使用多服务器的分布式结构?上面提到的使用代理服务器和Web服务器相结合,或者两个Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每个服务器所起到的作用是不同的,属于非对称的体系结构?非对称的服务器结构中每个服务器起到的作用是不同的,例如一个服务器用于提供静态网页,而另一个用于提供动态网页等等,这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也差?

另外一种多服务器的设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助?然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求?在这种结构中,将外部请求均匀分配到服务器上的技术称为负载均衡技术,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术?

基于dns负载均衡

最早的负载均衡技术是通过dns服务中的随机名字解析来实现的?在dns服务器中,可以为多个不同的地址配置同一个名字,这个数据被发送给其他名字服务器,而最终查询这个名字的客户机将在解析这个名字时随机使用其中一个地址?因此,对于同一个名字,不同的客户机会得到不同的地址,因此不同的客户访问的也就是不同地址的Web服务器,从而达到负载均衡的目的?

关于DNS负载均衡技术

例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请求,就可以设置该域的dns服务器中关于该域的数据包括与下面例子类似的结果: www1 IN A 192.168.1.1

www2 IN A 192.168.1.2

www3 IN A 192.168.1.3

www IN CNAME www1

www IN CNAME www2

www IN CNAME www3

这里先为每个计算机定义一个真实名字,然后再为它们定义同一个别名?直接针对不同地址设置同一个真实名字(A记录)也是可行的,但使用别名的方法易于管理一些?

由于此时反向解析只能针对一台计算机,那么每个Web服务器都需要使用ServerName重新定义同一个名字,或者设置名字解析的顺序为hosts文件优先,并在hosts文件中定义本身为www,以保证每个服务器的名字设置保持一致?

此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请求也就会发送给不同地址了?

当使用dns负载均衡的时候,必须尽量保证不同的客户计算机能均匀获得不同的地址?由于dns数据是具备一个刷新时间的标志的,一旦超过这个时间限制过期,其他dns服务器就需要和这个服务器交谈以重新获得地址数据,就有可能获得不同IP地址?因此为了使得地址能随机分配,就应该使得刷新时间尽量短,不同地方的dns服务器能更新对应的地址,使得地址获得能随机一些?然而将过期时间设置的过低将使得dns流量大增,而造成额外的网络问题?出于折衷的考虑,一般将刷新时间设置为1个小时?

dns负载均衡的一个问题是一旦某个服务器出现故障,即使及时修改了dns设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间保存了故障服务器地址的客户计算机将不能正常访问服务器?尽管存在多种问题,然而它还是一种非常有效的做法,当前使用在包括Yahoo在内的很多Web站点上?

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159062.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python读取log文件_python分析log日志

    python读取log文件_python分析log日志一、原理QXDM抓取log为isf格式,需要用QCAT打开进行分析,如果需要自动分析QXDM抓取的log,一个可行的方法为调用QCAT的COM接口打开isf文件并进行分析。QCAT6.X支持基于COM的接口调用,允许用户通过Perl、VBScript、JavaScript、Python等脚本语言调用应用。具体调用方法在QCAT安装后的《QCATUserGuide》用户手册中,第六章S…

    2022年10月2日
    3
  • cockpit二次开发_laravel api

    cockpit二次开发_laravel api背景:最近公司要基于cockpit,来定制自己的一个服务器管理web应用。嗯。。cockpit是啥?能干嘛?我要拿它干嘛?如你所见,我此刻是懵逼的。cockpit了解我熟练的打开了百度又打开了bing哦吼,二度懵逼。经过几番了解,大概是知道了LinuxCockpit是一个基于Web界面的应用,它提供了对系统的图形化管理。因为功能集成,对服务器管理来说,可以称得上是神器,深受linux开发者的喜爱。(呵呵。。)最后我大概是知道了,公司就是想让我在人..

    2025年7月27日
    4
  • 利用STM32F103精确控制步进电机「建议收藏」

    利用STM32F103精确控制步进电机「建议收藏」**利用STM32F103控制步进电机精确角度转动**欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,…

    2022年6月1日
    37
  • 【Python_环境配置】Pycharm创建虚拟环境

    【Python_环境配置】Pycharm创建虚拟环境问题由来从github下载的模型程序,所适包的版本不同,导致Pycharm中包混乱、版本冲突。 为每个程序单独创建虚拟环境,使得特定程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁。创建虚拟环境File-Settings-PythonInterpreter-设置图标,后续设置如下:Pycharm之创建虚拟环境在特定虚拟环境中安装包1、选择下方Terminal2、利用cd进入项目的Scripts文件夹3、输入activate4、利用pip命…

    2025年6月26日
    1
  • java异常_Java方法声明异常

    java异常_Java方法声明异常java异常

    2022年4月21日
    95
  • 电容分类_电解电容和薄膜电容的区别

    电容分类_电解电容和薄膜电容的区别一、按照功能  1.名称:聚酯(涤纶)电容   符号:(CL)  电容量:40p–4μ  额定电压:63–630V  主要特点:小体积,大容量,耐热耐湿,稳定性差  应用:对稳定性和损耗要求不高的低频电路  2.名称:聚苯乙烯电容  符号:(CB)  电容量:10p–1μ  额定电压:100V–30KV

    2022年8月22日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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