问一个基础问题,帮我理解一下概念

10-02-05 zzxsky1986
    

服务器的负载均衡和集群是什么关系?

在网上看到一篇文章,tomcat做负载均衡但是不集群,使用session粘合,我很不解tomcat不是只有先集群才能做负载均衡吗?怎么还有只做负载均衡不集群的说法?还是我没有明白负载均衡和集群的意思?

如果负载均衡和集群是两个概念,那tomcat的集群是干什么用的?

    

wzkl
2010-02-05 15:41

我理解应该集群是为了实现两个目标,第一个是分压,第二是失效转移(failover),负载均衡就是为了分压,失效转移就是为了安全,我个人感觉缺少任意一个都不算是集群或者说没有达到集群的目的,不知道楼主的贴子在哪看到的?呵呵

所以负载均衡是集群的目的,TOMCAT集群属于Web集群,集群包括很多,比如,WEB集群,EJB集群,JMS集群,JNDI集群等,最近在看一些书,请各位高手给于指点

[该贴被wzkl于2010-02-05 18:23修改过]

banq
2010-02-05 21:29

楼上解释是对的,集群包括负载平衡和失败恢复failover,前者是分布式处理,通过伸缩性提供性能,后者是容错性,保证某个业务执行一半当机时,能够保证另外一台继续执行。后者比较难。

tomcat主要是负载平衡,没有失败恢复,也可以称为集群,就像Web系统也可以称为JavaEE或J2EE一样。

但是这些概念都已经过去了。因为集群中两项(负载平衡和失败恢复)和分布式事务(或数据库事务 保证高一致性)三者是不可能同时都做得很好。

因为这是CAP定律告诉我们的。

所以,我们不要寄希望于JavaEE服务器比如Tomcat JBoss Websphere Weblogic等在多服务器分布式环境中,能够同时可以带来高性能 容错性以及高一致性。只能取得其中两者优秀。

换句话说:你充分使用集群两项:负载平衡和失败恢复高容错性,那么再就无法得到基于数据库的ACID事务(JDBC事务或JTA事务)带来高一致性,如果你使用tomcat集群,也就是负载平衡,再使用数据库事务,你就不能得到失败恢复高容错性。由你根据情况组合。