网络负载平衡_负载平衡传入的网络流量-程序员宅基地

技术标签: 防火墙  网络技术  网络  session  服务器  microsoft  cookies  

网络负载平衡(NLB)是IP负载平衡技术,它是Windows 2000 Advanced Server和Windows2000 DataCenter的一部分。有了NLB,传入的TCP通信、用户数据报协议(UDP)通信和一般路由封装(GRE)通信请求被分发给各个群集成员。分发的依据是基于服务器负载百分比设置的统计算法。通过使用网络载量平衡创建服务器群集,可增强Internet服务器程序的可用性,这些Internet服务器程序可以是用于Web、代理、域名服务(DNS)、FTP、虚拟专用网(VPN)和流式媒体服务器等程序。同时,网络载量平衡有助于调整你的服务器性能,以跟上不断增长的基于Internet客户的需求。同时NLB提供了动态伸缩功能,即在不影响客户机的情况下。自动适应群集内服务器的添加和删除。NLB是智能的,因为它可以检测到服务器故障,并将其从正运行的群集内悄悄地删除。集群资源从当前不可用的节点切换到可用的节点,重新提供服务叫做故障切换。通常的故障切换有两种类型:
  ★有计划切换:由系统管理员进行系统升级或软件维护而强制进行切换。
  ★故障切换:由于掉电、系统或软件故障而引起的切换。
  
   深入了解群集
  在对网络负载平衡的应用例子讲解之前,我们必须来了解群集这样一个概念。群集就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。例如,一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务,我们来看看一个基本的群集图.
  
 

   实现群集的方法
  
  实现了群集在某种程度上就算是实现了负载均衡。均衡的意思就是要使外部的连接平均地分布到内部的服务器上。一般来说,我们可以通过下面儿种方式进行群集服务。
  1、网络地址转换(NAT)法。这种方法可能大家较熟悉,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。我们还可以对Nat进行改造,创建多路NAT服务,使多个IP地址和网络通道混合使用。
  2、直接路由(Direct forwarding)法。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快、开销少。
  3、隧道技术(Direct forwarding)。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。
  总之,集群所能提供的服务是基于TCP/IP的Web服务、Mail服务。News服务、DNS服务、Proxy服务器等等。
  
   应用案例
  
  下面介绍一个用TurboLinux Cluster Server来实现一个负载均衡集群系统,用于提供Web和FTP的服务。其实这个例子在网上很多,大家还可以到网上去找找相应的资料。
  配置为:服务器共有12台,其中11台安装TurbolinuxCluster Server,1台安装Windows2000Sever。我们给外部提供Web和Ftp服务,要求外部的连接始终轮换的请求内部的服务器。具体配置如下:
  1、设置各台服务器的IP地址、子网掩码、路由等,调通网络,将一台TurboLinux服务器设置成DNS服务器,使其能够正向解析和反向解析。服务器名此例为pcl,域为test.com
  2、配置Cluster Server。执行Turbolinux clusteradmin,设置情况如下(注:箭头连接的是选单选项,箭头所指为下级选单,最后冒号后为设置情况)。
  
  
 

  
  网络设置:netmask 255.255.255.0
  
  配置集群各节点:因为TnrhnLinux Cluster Server本身能被工具自动同步,所以只需配置Windows2000 Server:→开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,从列表选择硬件→其他设备→Microsoft:Microsoft Loopback Adapter→完成。桌面上右键单击"网上邻居"→属性→TCP/IP→设置IP地址、缺省网关、子网掩码(注:先设成:255.255.255.0)。开始→运行→regedit→找到注册表中跟Microsoft Loopback Adapter相关的项,将子网掩码改成:255.255.255.255.
  配置系统以便运行合适的服务、并配置适合控制管理器管理的配置,以便在控制管理器申使用。
  管理选单中执行内容同步:选t1cs_content_sync,输入密码,将复制控制管理计算机中的服务内容。在管理选单中执行设置同步:选tlcs_config_sync,输入密码,将复制控制管理计算机中的设置。现在己经可以进入运行状态,可将客户端连接在服务器的交换机上。客户端可以请求Web和FTP服务,需要查看运行情况可以用控制台从https://coml.blcserver.com:910管理。
  作为防火墙的计算机设备同样也需要负载平衡。通常,防火墙处于外部网和内部网之间,决定了哪些内部网络可以被哪些外部网络访问,以及哪些外部服务可以被内部人员访问。这样就造成了防火墙必定肩负着沉重的负担,而负载平衡恰恰可以缓解外部网络多主于网络带宽的压力,即在防火墙上面增加冗于功能。使用了负载平衡算法的冗余防火墙系统,能监测每个防火墙上的用户数目和流量,平等地动态分配单元进出的流量,保证所有安装的防火墙的性能处在最优化状态,这样整个系统处理数据流量的能力比单个防火墙就有了很大的提高。同时,不论处于备用状态还是负载均衡状态下,每个防火墙还监视其他设备的工作状态,当一个防火墙单元失效时。系统会将所有请求重新分配到其他单元上,并达到新的负载平衡。
  配置上面的防火墙体系,首先需要防火墙自身的支持。这种防火墙可以采用SecureCom 8001防火墙。其次需要对路由器进行设置,对进出外网的数据包进行转发才行。负载平衡应用到网络IDS的原理也和防火墙差不多,大家可以试着去揣摩一下。
  在程序编写上我们也可以用到负载平衡,只是现在的负载平衡很明显是用软件来替代硬件的算法,在速度上可能不是那么快,但效果还是很好的,可以缓解外部对内部服务器的要求。大家都使用过的QQ,其服务器就有很多台。而每次我们登录的服务器可能都不是一样的。尽管如此,也许我们登录的IP也只是一个群集IP地址(即这个IP地址会把我们重新定向到另一台我们所不知道的服务器上面。实现负载均衡)。很多大型的有实力的公司也会在全国各地建立自己的分站点,总不可能大家都去访问一台服务器吧,这样服务器很容易崩溃的。
  接下来,我们来和大家讨论一下如何在ASP程序里实现负载平衡。当我们创建交互式Web页面时最大的挑战之一是维持用户的状态,一个站点也许想记住你是谁、在n页之前你点击了什么。在这最后一次做了些什么、现在马上要向你显示什么。实现这些功能的途径有许多,如查询字符串、提交表单或Cookies,最强大的一种是ASP的Session对象。服务器可以在Session集台中跟踪一整群的变量。通过与用户的Session Cookie相匹配来保持每个用户有一个特定变量。只要用户在服务器上保持活跃,Session变量就维持它的状态。然后在大量用户的使用中跟踪用户会给服务器带来很大的负载。然而对真正的负载平衡来说,每当处于服务器上的用户点击一个连接时;它就转到另一个服务器上面去,从而改变服务器的状态,而每当浏览一个新页面时都潜在地丢失他们的Session信息。如果你发现自己是在这样的环境下编写代码,或者你怀疑你的站点最终是负载平衡的,可能只有4种方法来解决这个问题:完全不使用Session、使用临时Cookies、购买第三方组件来处理Session管理,以及仅对Web范围内的第一次点击进行负载平衡。
  
   1.根本不使用Sessions
  
  显然,绕过Sessions管理这个问题的一个途径就是根本不使用Sessions变量,但是你仍然受困于状态保持的问题。你可以使用最简单的方法跟踪用户,而不用写客户机。"一种不安全的方法是使用浏览器查询字符串,或用隐藏值进行表单置入,以便用户保持活跃状态。这将允许你给他们一个用户id,并将变量存储在一个所有的Web服务器都能到达的地方。比如说,我们保持了变量 Ship To Zip Code.Type Of Customer和 CustomerEmail,可以这样写:
  
 

  这样通过将所有的Session信息存储在数据库中,可以使这3个变量在每一页上都保持活跃,确保用户ID的值很难猜到,这很重要。当访问第一页时,将分配给用户的sessionID存储为用户名。当用户离开这一页时可以考虑清除这个数据,有效地重新生成ASP session对象。这可以手工完成,或者用一个限时程序将数周以上的记录删除。
  
   2.使用临时Cookies
  
  对于特别的非敏感数据,直接向客户机中写入信息是有意义的。比如说,如果我们的站点只使用了一个变量来跟踪用户的ZIP码来得到用户在当地的交通记录,那么以HTTPCookie的形式将用户的ZIP码写入他们的机器应该不会产生什么危害。因为你可以将Cookie论写成浏览器关闭时失效,就可以使它们模仿一个Session变量的功能,也可以使他们是持久的,好在用户下一次访问时记住他。用Request对象Cookie的值可以为服务器所用。请求Cookie的值,然后将值带进来。所以在我们上面的例子中,可以这样做:
  

  你不得不把这些放置在每个页面的顶部,但是如果用户把3个Cookies都设置了,那么每一页都可以存取和使用这些用户特定的变量。你还可以在一个Cookie中设置3个变量,请看Ken Baumbach的文章Cookie Basics with ASP,里面有设置变量的更多信息。如果你认为用户可能在浏览器上使Cookie无效,这种方法就不适用。但是越来越多的站点要求使用Cookies,Web用户也越来越熟练了。有可能相对很少的用户会使Cookies无效,但是这要在执行这一方法之前进行考虑。虽然上面的方法肯定能奏效,但是它们削弱了ASP的功能。因为它限制了其中一个关键组件Session对象的使用。
  
   3.购买一个第三方组件
  
  第三方组件一般可以比TTS更好地处理Session.在这里我们向大家介绍一个组件:由SoftArtisans提供的SA-Session Pro。它使用2000文件系"统存储用户的信息,整个网络范围内的服务器都可以使用。第三方组件创建"Session引擎"把网络服务器和Session管理器分离。这样,每次用户都可以被重定向到相同的Session引擎,同时也对服务器本身的点击进行负载平衡。另一个可选择的第三方组件是Microsoft的成员服务器。它是Microsoft的站点服务器,它允许一个站点处理状态维护以外的问题。
  由于ASP已经越来越成为企业级网络应用程序的选择,而负载平衡也成为这些应用程序成功的最大威胁,在市场上会出现越来越多的第三方组件。ASP本身就是服务器对象或ActiveX组件,就是可以处理这些插件的。
  不知道大家现在对SQL 2000了解吗?现在SQL2000可以和Win2000合作处理用户的Cookies,这样一来,ASP的Cookies变量和Session可以都存储在SQL2000数据库中,我们就再也不需要购买其他不是很可靠的第三方组件了。
  
   充分利用Win2000 Adv server
  
  Windows 2000 Advanced Server操作系统在包含Windows 2000服务器标准版全部特性和功能的基础上,为需要高度可伸缩性。可靠性及可用性的组织机构提供了额外特性。Windows 2000Advanced Server是一种通用高可用解决方案,适用于当今的PC客户机服务器局域网。它通过共享的SCSI磁盘阵列将两套Windows2000系统耦合在一起,创建成一种单一系统环境,或称为集群。终端客户可以存取所有的集群资源。例如,磁盘共享、文件共享以及数据库应用程序,而且不必了解集群内部各服务器名字。如果一台服务器失效,集群的第二台服务器将立即接替其工作负荷,重新连接客户机,迁徒共享存储器和文件共享等。
  Windows 2000 Advancedserver集群适用工业标准部件,以非常低的成本提供系统级高可用性。对客户机来说,集群的寻址跟单一服务器寻址没有差别。集群通过冗余CPU、存储器以及数据路径提供高水平的可用性。Wmdows 2000的网络负载平衡群集最多可将 32台运行 Windows2000Advanced Server软件的服务器合并到单个群集中,以此对基于 TCP/IP的服务和应用程序提供可伸缩性和高可靠性。客户端可使用一个IP地址访问群集,并用其他 IP地址访问多宿主服务器。网络负载平衡群集通过在群集中的服务器之间分配客户机连接以提供高性能。如果服务器故障或因升级、测试和维护而脱机,群集将自动重新配置,而且客户机连接也将重新分配。
  如果要在非群集环境下访问某个网络应用程序或资源,网络客户端必须与物理服务器 (是指网络中由唯一的网络名称和 IP地址所标识的特定计算机)连接。如果该服务器发生故障,则无法访问应用程序或资源.Windows 2000 Advanced Server允许通过服务器群集创建虚拟服务器。与物理服务器不同,虚拟服务器不与特定的计算机相关联,但可以像组那样进行故障转移。如果虚拟服务器所在的节点产生故障,则客户端仍可以使用相同的服务器名访问它的资源。
  对硬件RAID的支持,MicrosoftWindows硬件兼容性列表也包含了用于群集的许多不同硬件RAID配置
  群集技术和负载平衡是不可分割的。我们用了很大的篇幅给大家介绍了群集技术,它是实现负载平衡的关键。而负载平衡技术的强大功能还必须大家通过亲身实践才能体会到。 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/vargas/article/details/1261583

智能推荐

51单片机的中断系统_51单片机中断篇-程序员宅基地

文章浏览阅读3.3k次,点赞7次,收藏39次。CPU 执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对异常情况或特殊请求进行处理,处理完毕后再返回现行程序断点处,继续执行原程序。void 函数名(void) interrupt n using m {中断函数内容 //尽量精简 }编译器会把该函数转化为中断函数,表示中断源编号为n,中断源对应一个中断入口地址,而中断入口地址的内容为跳转指令,转入本函数。using m用于指定本函数内部使用的工作寄存器组,m取值为0~3。该修饰符可省略,由编译器自动分配。_51单片机中断篇

oracle项目经验求职,网络工程师简历中的项目经验怎么写-程序员宅基地

文章浏览阅读396次。项目经验(案例一)项目时间:2009-10 - 2009-12项目名称:中驰别克信息化管理整改完善项目描述:项目介绍一,建立中驰别克硬件档案(PC,服务器,网络设备,办公设备等)二,建立中驰别克软件档案(每台PC安装的软件,财务,HR,OA,专用系统等)三,能过建立的档案对中驰别克信息化办公环境优化(合理使用ADSL宽带资源,对域进行调整,对文件服务器进行优化,对共享打印机进行调整)四,优化完成后..._网络工程师项目经历

LVS四层负载均衡集群-程序员宅基地

文章浏览阅读1k次,点赞31次,收藏30次。LVS:Linux Virtual Server,负载调度器,内核集成, 阿里的四层SLB(Server Load Balance)是基于LVS+keepalived实现。NATTUNDR优点端口转换WAN性能最好缺点性能瓶颈服务器支持隧道模式不支持跨网段真实服务器要求anyTunneling支持网络private(私网)LAN/WAN(私网/公网)LAN(私网)真实服务器数量High (100)High (100)真实服务器网关lvs内网地址。

「技术综述」一文道尽传统图像降噪方法_噪声很大的图片可以降噪吗-程序员宅基地

文章浏览阅读899次。https://www.toutiao.com/a6713171323893318151/作者 | 黄小邪/言有三编辑 | 黄小邪/言有三图像预处理算法的好坏直接关系到后续图像处理的效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够去除信号中无用的信息。并且,降噪还引出了一..._噪声很大的图片可以降噪吗

Effective Java 【对于所有对象都通用的方法】第13条 谨慎地覆盖clone_为继承设计类有两种选择,但无论选择其中的-程序员宅基地

文章浏览阅读152次。目录谨慎地覆盖cloneCloneable接口并没有包含任何方法,那么它到底有什么作用呢?Object类中的clone()方法如何重写好一个clone()方法1.对于数组类型我可以采用clone()方法的递归2.如果对象是非数组,建议提供拷贝构造器(copy constructor)或者拷贝工厂(copy factory)3.如果为线程安全的类重写clone()方法4.如果为需要被继承的类重写clone()方法总结谨慎地覆盖cloneCloneable接口地目的是作为对象的一个mixin接口(详见第20_为继承设计类有两种选择,但无论选择其中的

毕业设计 基于协同过滤的电影推荐系统-程序员宅基地

文章浏览阅读958次,点赞21次,收藏24次。今天学长向大家分享一个毕业设计项目基于协同过滤的电影推荐系统项目运行效果:项目获取:https://gitee.com/assistant-a/project-sharing21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,人们可以随时随地浏览到海量信息,但是这些大量信息千差万别,需要费事费力的筛选、甄别自己喜欢或者感兴趣的数据。对网络电影服务来说,需要用到优秀的协同过滤推荐功能去辅助整个系统。系统基于Python技术,使用UML建模,采用Django框架组合进行设

随便推点

你想要的10G SFP+光模块大全都在这里-程序员宅基地

文章浏览阅读614次。10G SFP+光模块被广泛应用于10G以太网中,在下一代移动网络、固定接入网、城域网、以及数据中心等领域非常常见。下面易天光通信(ETU-LINK)就为大家一一盘点下10G SFP+光模块都有哪些吧。一、10G SFP+双纤光模块10G SFP+双纤光模块是一种常规的光模块,有两个LC光纤接口,传输距离最远可达100公里,常用的10G SFP+双纤光模块有10G SFP+ SR、10G SFP+ LR,其中10G SFP+ SR的传输距离为300米,10G SFP+ LR的传输距离为10公里。_10g sfp+

计算机毕业设计Node.js+Vue基于Web美食网站设计(程序+源码+LW+部署)_基于vue美食网站源码-程序员宅基地

文章浏览阅读239次。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流项目运行环境配置:项目技术:Express框架 + Node.js+ Vue 等等组成,B/S模式 +Vscode管理+前后端分离等等。环境需要1.运行环境:最好是Nodejs最新版,我们在这个版本上开发的。其他版本理论上也可以。2.开发环境:Vscode或HbuilderX都可以。推荐HbuilderX;3.mysql环境:建议是用5.7版本均可4.硬件环境:windows 7/8/10 1G内存以上;_基于vue美食网站源码

oldwain随便写@hexun-程序员宅基地

文章浏览阅读62次。oldwain随便写@hexun链接:http://oldwain.blog.hexun.com/ ...

渗透测试-SQL注入-SQLMap工具_sqlmap拖库-程序员宅基地

文章浏览阅读843次,点赞16次,收藏22次。用这个工具扫描其它网站时,要注意法律问题,同时也比较慢,所以我们以之前写的登录页面为例子扫描。_sqlmap拖库

origin三图合一_神教程:Origin也能玩转图片拼接组合排版-程序员宅基地

文章浏览阅读1.5w次,点赞5次,收藏38次。Origin也能玩转图片的拼接组合排版谭编(华南师范大学学报编辑部,广州 510631)通常,我们利用Origin软件能非常快捷地绘制出一张单独的绘图。但是,我们在论文的撰写过程中,经常需要将多种科学实验图片(电镜图、示意图、曲线图等)组合在一张图片中。大多数人都是采用PPT、Adobe Illustrator、CorelDraw等软件对多种不同类型的图进行拼接的。那么,利用Origin软件能否实..._origin怎么把三个图做到一张图上

51单片机智能电风扇控制系统proteus仿真设计( 仿真+程序+原理图+报告+讲解视频)_电风扇模拟控制系统设计-程序员宅基地

文章浏览阅读4.2k次,点赞4次,收藏51次。51单片机智能电风扇控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0042。_电风扇模拟控制系统设计