集群和负载平衡那个更有效率

我们现在正在作一个J2EE项目,使用6台小型机,其中2台作Oracle服务器,4台作EJB server.
方案是:4台小型机每台都是独立的应用,可以完成所有的功能,由交换机负责将流量分配给每个ejb server。每个server之间没有rmi调用。
请问高手:是这样效率更高还是使用rmi效率更高,如果使用rmi,那么Session facade、DAO、Value Object、Service Locator等模式是否可以降低RMI造成的开销?什么情况下使用集群?

如果一个server当机了,你需要把此server上的session转移到其他server上,这样用户不会察觉到当机,那么你需要做集群。

通常情况下,如果不是系统问题,集群中的一个down了,其它的撑不住

做什么规模的系统需要这么大的投入?

电子报税

> 通常情况下,如果不是系统问题,集群中的一个down了,其它
> 某挪蛔?>
> 做什么规模的系统需要这么大的投入?

如果是因为撑不住了而当机,就该再增加几台了到集群了。

也就是说集群提高了系统整体的稳定性,那么效率呢?这套系统理论上会承受极大的访问量。

如果你的应用比较简单,效率要求比较高,可以考虑用负载平衡。负载平衡是很早以前web server来采用的技术。但实际上目前很多的应用并不是那么简单,要考虑事务方面的问题,这样才能保持数据的同步。这是我的理解,不知道对不对。

比较同意shmin的说法

我想cluster和负载均衡并不是完全不同的概念
cluster的实现包括事务恢复与负载均衡
考虑到session和其它信息的复制、同步造成的开销
cluster效率不会太高。
如果系统很大,对于交易没有过高的要求,首选由软件或者硬件实现http
分发的负载均衡,分发策略有轮询、随机、动态监测等

Value Object、Service Locator是一定要使用的
模式并不是使用越多越好,在可扩展性与性能间取一个平衡
寻找系统瓶颈,把资源分配在最需要的地方
用尽量少的动作做同样多的事情

我有些明白了。
cluster不但解决了负载均衡问题同时提高类系统整体的稳定性,但是开发周期方面是否会延长(比较难设计)?
设计一个cluster和设计一个普通的系统有那些区别?

cluster由应用服务器本身实现
如果你用的是weblogic,bea的技术支持给我们的建议
是尽量避免使用cluster。如果是其它的,先咨询一下支持。
使不使用cluster,对于应用的设计基本没有什么影响,如
果使用,可能有段时间需要准备一个人来做专门的系统管理
与调优,cluster跟主机网络都有关系。
轻易不要选择在不同主机的应用服务器间做,否则。。。

因为现在几乎所有的EJB容器都是支持Cluster的,包括JBoss,所以,开发一个支持CLuster的分布式计算环境是不会花费过长时间的,这也是使用EJB的一大优点:编程时不用考虑分布式环境,部署时可以分布式部署.

关于Bea技术人员推荐尽量回避Cluster,我不敢苟同,其实很多人使用EJB的根本目的是看中它的分布式运算能力,当然,一个J2EE服务器实行Cluster配置的难度较大

cluster实现的两个主要功能是load balance与failover
主要看对failover没有特殊的要求
我没用过cluster,不好说的太多。
我这里使用的方式是假设每个用户对系统产生的压力相等
登录时将每个用户按照平均分配原则轮询定向到一堆web server上
我没理解banq所说的“开发一个支持CLuster的分布式计算环境是不会花费过长时间的”是什么意思,能否解释一下

> >
> 通常情况下,如果不是系统问题,集群中的一个down了,其它
>
> > 某挪蛔?>
> > 做什么规模的系统需要这么大的投入?
>
> 如果是因为撑不住了而当机,就该再增加几台了到集群了。


因为撑不住了档机很好办,因为程序原因down机,再多机器也没用