还是不知道cluster和负载均衡之间有什么不同
难道负载均衡就不需要考虑数据同步、session问题了么?

反正多台主机的负载均衡很容易实现,成本低扩展性又好,现在的大型网站都是这样做的

to missxkl
这里有一篇我以前写的Jboss集群文档,如果你的业务核心使用EJB实现,除了会话Bean注意使用remote,JBoss需要配置成集群环境运行,其它在程序上无需什么变化。

文章地址


http://www.jdon.com/download/Clustering.ppt

要澄清概念,集群(cluster)就是为了负载均衡目的的

何来“集群和负载平衡那个更有效率”的说法

你的情况是集群方案还是分布式方案的选择问题,楼上已经有很多仁兄说了要考虑的因素了。其实,如果考虑效率和稳定性(集群理论上可以实现零当机)就应该选择集群方案,因为集群可以负载均衡,也就是每台机理论上面对的压力是相同的;而分布式其实就是把系统切割成一个个子系统部署到不同机器上,子系统之间通过iiop/rmi(甚至webservices什么的)进行远程调用,那么每个子系统面对的并发压力很大几率是不均衡的,如果子系统之间的交互很多的话,就可能在某个子系统上出现瓶颈。那么,什么情况下就应该考虑用分布式呢?很简单,如果子系统之间的工作是相对独立的,它们的关系是藕合的,交互比较少,那就可以考虑这个方案了

总之,具体的情况可以具体分析。但不管怎么说,这都是部署时候的事了,跟系统的开发没什么关系,你大可以先把系统做完,然后慢慢测试,根据测试结果找个最佳方案出来,比如,你有个模块是访问量最大的,那就可以把这个模块独立出来,作为子系统,并用两台小型机作这个子系统的集群,其它两台机又是另外两个并发压力没那么大的子系统的集群。你有这么多小型机,羡慕ing... :) 慢慢研究一个最佳方案吧

用集群后马上就的考虑session复制问题了,因为你的load balance不能保证每次都会将同一个用户转到同一个server上,要复制用户信息很麻烦的,存在数据库中感觉速度又不快,要找一个合适的方案还真不容易

我的意思是:
如果所有应用都在一台机器上运行那么所有方法调用采用本地调用,sessionbean采用local接口,效率较高。
如果采用集群,则需要远程调用,显然会降低效率,我想知道这种现象会在多大程度上影响效率,是否有模式(例如session facade,vo)改进,是否真的管用。
另外:其实这个项目用12台小型机^_^

并不是采用集群就会导致远程调用,远程调用是在分布式的场景中采取的方式。而集群(cluster)中,每台机跑的应用都是一样的,都属于本地调用,应该采用local接口

而分布式是指不同的子系统或模块部署到不同的机器中,它们之间的交互就属于iiop/rmi远程调用,应该采用remote接口

每个系统应该具体问题具体分析,比如这个系统的最大并发量有可能达到多大,是否要求零当机,系统可不可分割成藕合度较低的几个子系统等等因素,应该结合考虑,在各因素间找到最佳平衡点。我想既然有12台小型机,可采用的方案的还是比较多的

Cluster有一个http 和ejb session数据和server cache的复制同步问题, 随说大多数appserver 都有解决方案, 但在实际中用的不是很理想.特别是cluster node比较多的情况.
如果系统功能不是很复杂, 可以考虑一下DNS轮寻(DNS robin), 很多大网站都用他, 比如yahoo, hotmail. 配置简单.

认识集群http://industry.ccidnet.com/pub/article/c27_a56723_p1.html

mark