集群的概念容易和一些概念(smp 、numa、mpp、分布处理)相混淆,其主要区别在资源被共享和复制的级别不同。它们是按smp、numa、mpp、集群、分布处理从最紧 密到最松散的排列。
smp(多处理系统):这种系统是在一台计算机里有多个cpu,cpu之间的地位是平等的,它们共享内存空间和i/o设备。其工作方法是由操作系统负责将任务分解成多个并发进程,然后让其在不同的cpu上运行。
numa(非统一内存存取):这种系统可以让多处理计算机的cpu比smp更高效地共享本地内存,cpu可以更快速地存取单一的内存区域,不过如需要也可以用间接方式存取其他区域的内存,这种方法是让某些cpu在给定范围的物理内存中有更大的优先使用权。
mpp(巨型并行处理):这种系统的节点都有自己的cpu,并有自己的专有资源。此种结构相对独立,但各个节点一般没有完全存取i/o的能力。
集群:集群系统是由独立的计算机组成,但有控制管理工具统一管理。
分布处理:它是比我们要构筑的集群系统更松散的连接,一般是任务在不同的地方完成,没有可以作为整体管理的单一实体。
以上的聚合方式有紧有疏,它们都有自己的适用范围,这里就不多说了,有兴趣可自己找些资料看,这里只是想让大家了解它所处的位置。
实现负载均衡的方法
集群的目的是共享和高效地利用资源,提供大型运算,提供负载均衡分配请求压力以及出现故障时能够进行切换实现高可用性。
限于篇幅,本文只对负载均衡的实现做些介绍(针对turbolinux cluster server)。通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有这样几种实现方法:直接路由(direct forwarding)、网络地址转换(nat)、隧道技术(tunneling)。
直接路由(direct forwarding)
当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器