集群的可扩展性及其分布式体系结构(6)
2008-11-25 10:56:49 来源:WEB开发网大多数的安全系统都是基于密钥加密技术进行可靠数据传输的。现有的安全Web服务使用HTTPS协议。当客户访问HTTPS服务时,会在服务和客户端之间先建立一个SSL连接,来交换对称公钥加密的证书并协商一个SSL Key,来加密以后的会话。在SSL Key的生命周期内,后续的所有HTTPS连接都使用这个SSL Key,所以同一客户的不同HTTPS连接也存在相关性。平衡器在工作的时候就需要能够识别这类安全会话,并根据其关键信息将请求分配到生产初始密钥的站点,以保证客户在使用上的一致性。
带宽分配策略
这种方法根据新来的流量的类型建立优先级,为高优先级的流量分配更多的带宽和节点,比如网络中管理控制信息和安全控制信息的优先级就要高于其他类型的数据。实质上这是QoS的实现,现在我们可以通过自己扩展的软件来弥补IPv4在这方面的不足。它一般使用最快响应和最少连接算法来决定最可用的节点。
特定应用的重定向
这种方法依赖于应用类型或用户试图访问的资源,由于在TCP/IP 协议体系中没有统一的独立会话层, 一些应用建立了自已的会话系统,因而平衡器厂商不得不在产品可能结构中加入对这些会话类型的支持。
数据库和web负载平衡是最通用的特定应用的重定向。在数据库中,数据信息可能分散在多台节点上,当新的查询到来时,平衡器能够分解这个查询,在每个节点上获得部分数据后再合并成最终的应答返回给用户。
静态的Web访问通常都是读取HTML文件,而每个Web页面内可能包含多个互相独立、类型不同的文件。比如,一个带有Frame(框架)的页面里,包含多个独立的HTML源文件和多个独立的Gif图片文件或者其他媒体文件。平衡器可以分解用户的请求URL,识别出存放在不同节点上的文件,将负载分散到多个服务器上。
较复杂的情况是脚本访问。一些web 脚本需要按顺序在同样用户和服务器上执行。如果连续的脚本每次被分送到不同的节点上,就可能会由于多个副本在集群上传输而破坏脚本。一种解决方法是让所有节点访问后端的一个独立数据库,但这又产生了数据库瓶颈,妨碍了负载平衡。另一种较好的方法是记录用户与一个特定节点间的web会话,即使节点重载了,也要维持二者之间的流量,而不是重分配负载。
总结
网络负载平衡系统有独立的平衡器来监视网络请求,并按某种规则将请求分配到本地或其他分布式网络的集群节点上。这里介绍了一些基本的用于构建平衡系统的算法,这些算法基本上都基于多任务的队列模型,并配合相关技术以解决TCP/IP集群节点相关的问题。这些方法尽管独自开发,但却有很多相似的形式和作用,几个方法可以组合产生更复杂的负载平衡,其中典型的internet域名轮转系统在过去的负载平衡中起着重要作用。TCP/IP协议体系中,主要在两层进行平衡:网络层和传输层,由于没有独立的会话层,产生了给予特定应用协议的平衡方法。现在最大热点是在本地或分布结构中构建web服务器负载平衡系统。
更多精彩
赞助商链接