第 3 章 Systems architecture(系统架构)
3.1.集群(Cluster) 集群有很多实现方法,分为硬件和软件,集群可以在不同网络层面上实现 实现IP轮循(Bind DNS) 硬件四层交换(硬件负载均衡设备 F5 BIG IP) 软件四层交换(linux virtual server) 应用层上实现(tomcat) 越是低层性能越好,越是上层功能更强 集群的分类 高可用性集群 负载均衡集群 超级计算集群 网站一般用到两种集群分别是高可用性集群和负载均衡集群 3.1.1.负载均衡 3.1.1.1.DNS负载均衡 这是早期出现的负载均衡技术,直到现在,很多网站仍然使用DNS负载均衡。 你可通过ping命令观看它是如何工作的,例如你可反复ping个网域名。 C:\>ping www.163.com Pinging www.cache.split.netease.com [220.181.28.52] with 32 bytes of data: Reply from 220.181.28.52: bytes=32 time=226ms TTL=53 Reply from 220.181.28.52: bytes=32 time=225ms TTL=53 Reply from 220.181.28.52: bytes=32 time=226ms TTL=53 Reply from 220.181.28.52: bytes=32 time=226ms TTL=53 Ping statistics for 220.181.28.52: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 225ms, Maximum = 226ms, Average = 225ms C:\>ping www.163.com Pinging www.cache.split.netease.com [220.181.28.53] with 32 bytes of data: Reply from 220.181.28.53: bytes=32 time=52ms TTL=52 Reply from 220.181.28.53: bytes=32 time=53ms TTL=52 Reply from 220.181.28.53: bytes=32 time=52ms TTL=52 Reply from 220.181.28.53: bytes=32 time=52ms TTL=52 Ping statistics for 220.181.28.53: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 52ms, Maximum = 53ms, Average = 52ms C:\>ping www.163.com Pinging www.cache.split.netease.com [220.181.28.50] with 32 bytes of data: Reply from 220.181.28.50: bytes=32 time=51ms TTL=53 Reply from 220.181.28.50: bytes=32 time=52ms TTL=53 Reply from 220.181.28.50: bytes=32 time=52ms TTL=53 Reply from 220.181.28.50: bytes=32 time=51ms TTL=53 Ping statistics for 220.181.28.50: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 51ms, Maximum = 52ms, Average = 51ms C:\> DNS负载均衡主要优点 技术简单,容易实现,灵活,方便,成本低 Web服务器可以位于互联网的任意位置上,无地理限制。 DNS的主从结构非常稳定 可以有效的分散DDOS攻击。 你甚至可以在DNS服务商那里实现,自己不需要添加设备。而且没有带宽开销。 DNS负载均衡主要缺点 DNS负载均衡采用的是简单的轮循负载算法,不能够按照服务器节点的处理能力分配负载。 不支持故障转移(failover)和自动恢复failback ,如果某台服务器拓机,DNS仍会将用户解析到这台故障服务器上,导致不能响应客户端。 如果添加节点或撤出节点,不能即时更新到省市级DNS,可导致部分地区不能访问。 占用大量静态IP。 3.1.1.2.软件四层交换负载均衡 软件四层交换负载均衡为我们解决了几个问题 能够按照服务器节点的处理能力分配负载。 支持故障转移(failover)和自动恢复failback ,如果某节点拓机,调度器自动将它剔除,不响应客户端访问,当节点故障排除调度器立即恢复节点。 可以随时添加节点或撤出节点,即时生效,方便网站扩容。 软件四层交换负载均衡优点 仅仅需要一个静态IP。 节点位于私有网络上与WAN隔离,用户面对的只是调度器。 可以随时添加节点或撤出节点。 通过端口可以组建多个集群。 3.1.1.3.应用层负载均衡 Tomcat balancer mod_proxy_balancer.so ,tomcat mod_jk.so MySQL proxy / MySQL-LB 3.1.2.高可用性集群 俗称:双机热备份 关键词:心跳线 两部服务器,或多部服务器,形成一个集群,当主服务器崩溃是,立即切换到其它节点上。 两部服务器要做到,内容实时同步,保持数据一直。 一般用 heartbeat + DRBD 实现。heartbeat负责切换服务器,DRBD用于同步数据。 3.1.3.负载均衡设备 负载均衡成熟产品 F5 Big IP Array 这些设备可提供3,4,7层负载均衡HA,硬件已经压缩,HTTP头改写,URL改写... 其中3层交换部分多采用硬件实现。 3.1.4.会话保持 3.1.5.健康状态检查 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。