6.2 软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。这样的架构我准备空了专门详细整理一下和大家探讨。
6.3 七层交换
大家都知道TCP/IP的七层协议,四层交换是基于传输层的,在这一层只能处理连接的管理,但是无法和业务关联起来,通常只能针对tcp、udp的连接来进行处理,而真正的业务逻辑需要后面的服务器群自己来处理,随着技术的发展,今天,我们在很多高级的应用中出现了七层交换。
七层交换是基于TCP/IP的第七层应用层来实现的,在这一层上,首先我们可以区分出具体的应用,比如HTTP、TELNET、FTP、DNS等等,还能根据应用中传送的内容来进行策略的管理,比如我们有这么两个网站的路径 a.com/music/… 和a.com/photo/… 原来基于四层交换只能把这两个url的请求都分发到后面一组服务器上,但是七层交换可以判断访问的是music/还是photo/路径,然后分别分发到不通的服务器群上,从而实现更灵活的系统架构设计。
当然,七层交换也分硬件和软件的实现方式,在这里我不细说了,硬件有著名的F5、Nortel等,软件有Haproxy等,当然,七层交换的软件目前还是在性能上要远远差别于硬件实现的,要知道,这些硬件都价格不菲
总结:
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,Michael这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大,希望大家一起讨论,达到抛砖引玉之效。
原文转自:http://blogread.cn/it/article/1504?f=wb