几天前就google过集群,却只是匆匆看了一眼就跳过,没留下什么印象,昨天看到别人讨论中涉及集群,自己又坠入雾里,很多零碎的时间就是这样浪费,积沙成塔,这几年已攒出一个8848
    于是今天再次google并一点点整理出来,虽然自己还没有用过也没有见,起码求个再看到类似讨论时不会无知而慌乱。
 
1、概念:集群(Cluster)技术是近几年兴起的发展高性能计算机的一项技术。它是一组相互独立的计算机,利用高速通信网络组成一个单一的计算机系统,并以单一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。当一台服务器发生故障时,它所运行的应用程序将由其他服务器自动接管。在大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的服务都可被所有的网络客户使用。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。总之,将多台同构或异构的计算机连接起来协同完成特定的任务就构成了集群系统。
2、使用集群的好处:集群计算机系统在数值计算,数据处理,及数据存储方面表现出的高性能足以和任何传统的网络服务器或超级计算机相比。其极低的价格(传统超级计算机的十分之一)使得许多企业能够利用这些性能,而且可以选择系统的大小以适应企业发展的需要。除此以外,集群计算机比传统的计算机更加可靠和易于维护集群系统还能将在一个处理器上运行失败的计算操作天衣无缝地转换到另外的处理器上。这项性能使得系统实现零停机成为可能。用通俗的话讲就是,如果一个server当机了,你需要把此server上的session转移到其他server上,这样用户不会察觉到当机。
3Cluster和负载均衡(Load balance):cluster实现的两个主要功能是load balancefailover(事务恢复),考虑到session和其它信息的复制、同步造成的开销,cluster效率不会太高。
4、实现:集群本身是由应用服务器来实现的,是部署时的事情 ,在开发时我们完全可以不考虑那么多,使不使用cluster,对于应用的设计基本没有什么影响。
5Cluster 分布式:如果考虑效率和稳定性(集群理论上可以实现零当机)就应该选择集群方案,因为集群可以负载均衡,也就是每台机理论上面对的压力是相同的;而分布式其实就是把系统切割成一个个子系统部署到不同机器上,子系统之间通过iiop/rmi(或webservices等)进行远程调用,那么每个子系统面对的并发压力很大几率是不均衡的,如果子系统之间的交互很多的话,就可能在某个子系统上出现瓶颈。那么,什么情况下就应该考虑用分布式呢?很简单,如果子系统之间的工作是相对独立的,它们的关系是松藕合的,交互比较少,那就可以考虑分布式了。