论坛首页 Java企业应用论坛

有关分布式计算和集群的疑惑

浏览 20654 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-05-16  
集群只是为了应付以后可能出现请求数很大的情况,现在还没有那个需要,但得留条后路吧。
0 请登录后投票
   发表时间:2006-05-02  
jeffrey_he 写道
集群只是为了应付以后可能出现请求数很大的情况,现在还没有那个需要,但得留条后路吧。


反对!Rod Johnson常常告诫我们:YAGNI(You Arent Gonna Need It)
不要为不必要的需求埋单 :)
0 请登录后投票
   发表时间:2006-05-02  
我的理解,代码上不需要特别的要求,正如:flyisland san
所说,一个请求实际上是由逻辑上的"一台"服务器完成的,负载均衡是操作系统之间实现的.
不知道我的理解是否正确(我没有配置过集群)

如果需要做到分布式,那么你的代码就有特别要求,必须实现处理分布式数据的算法
0 请登录后投票
   发表时间:2006-05-02  
dlee 写道
jeffrey_he 写道
那是不是只有用EJB才能做负载均衡群集呢?

不是的,在 Web Container 这个级别也完全可以做负载均衡集群的。
EJB 的作用不完全是做分布式应用,以前 robbin 说过,EJB 的意义在于提供了一个组件管理平台,使得你不需要关心太多的低层的技术细节(例如,多线程、对象池等等,这些事情又不能直接帮你赚到钱,为何你要去关心这些事情?),集中精力于可重用业务逻辑的开发。从这个角度来说,现在各种 IOC 框架(Spring、HiveMind、Pico)的出现,实际上已经减少了必须要使用 EJB 的理由。


上述提到: "从这个角度来说,现在各种 IOC 框架(Spring、HiveMind、Pico)的出现,实际上已经减少了必须要使用 EJB 的理由"

那么请问这些容器,比如spring,如何做到调用不同jvm(服务器)上的 提供业务逻辑的 Bean 呢? 这点我很想知道,谢谢!
0 请登录后投票
   发表时间:2006-05-05  
ytfei 写道

上述提到: "从这个角度来说,现在各种 IOC 框架(Spring、HiveMind、Pico)的出现,实际上已经减少了必须要使用 EJB 的理由"

那么请问这些容器,比如spring,如何做到调用不同jvm(服务器)上的 提供业务逻辑的 Bean 呢? 这点我很想知道,谢谢!


1、为什么非要调用不同jvm的bean呢?你远程调用的开销难道跟bean事务处理相比可以忽略不计?如果不是这样,请优先选择集群,而不是分布式。
2、spring可以非常方便的集成hession或者burlap,调用其它jvm上的bean。
0 请登录后投票
   发表时间:2006-05-09  
最近看了篇文章,更正一下我上述的回复,其实在某些情况下代码是有特殊要求的,比如
1.WEB服务器的session在集群当中的存储,为了保证一个服务器出错后,其他服务器能接管该服务器当前处理中的数据,比如session里面的信息,那么存储在session中的信息必须是可序列化的,如果集群的session复制方案采取的是只复制有变化的会话,或会话中的属性,则必须这样:
Student student = (Student)session.getAttribute(“student”);
student.setName(“Jade”);
session.setAttribute(“student”, student); //this is very important!

当然,如果你仅仅是要求一个服务器当掉后,不让应用停止时间过长,仅仅是把用户请求导向其他服务器,而不管当内存中的数据,那么,就可以不用考虑这么多

2.静态变量,在每个服务器上的JVM里,都保留一份静态变量的复制。这样一来,你在其中一台服务器上的数据可能就与其他服务器不同步。
3。外部资源,比如访问文件系统(存放用户上传的文件,动态生成存储在本地的XML文件等等)
0 请登录后投票
   发表时间:2006-05-10  
我还是有不明白的地方。所谓的4层交换机负载均衡和集群是什么关系?在第4层分包怎么能保证信息被正确的分发呢?
0 请登录后投票
   发表时间:2006-05-20  
用点比喻:

分布式:项目经理拿到项目了,分到项目组的各个成员,每个人分一点任务,然后把各人完成的合到一起得到最终结果。

集群:一个服务型公司,可以处理多个客户的任务,对于客户来讲,只需要跟接口打交道。但是每个任务完成过程中会由多个人,多个部门协调完成。比如到付费处付钱,取药处取药,付费处和取药处有多个窗口以实现负载均衡。

0 请登录后投票
   发表时间:2006-05-20  
来自: http://www.equn.com/  中国分布式总站
什么是分布式计算

所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。 最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。

专业定义 (中国科学技术信息研究所对分布式计算的定义)
分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:
1、稀有资源可以共享,
2、通过分布式计算可以在多台计算机上平衡计算负载,
3、可以把程序放在最适合运行它的计算机上,
其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
实际上,网格计算就是分布式计算的一种。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。
0 请登录后投票
   发表时间:2006-05-25  
这个问题以前就跟别人争论过,看来这个疑问还会继续被争论下去。

对于ejb来讲,分布式和集群的实现都基于相同的技术——RMI。

分布式的目的是实现位置透明,其实和Web Service是一个概念,只不过要求通信的各方都是java系统。

集群的目的是负载均衡,为了满足大型业务系统在处理高并发时对性能的要求。

从部署方式上来看,分布式系统的各个节点上应该部署不同的应用,或是一个应用中的不同的业务子系统,节点上的业务逻辑通过JNDI进行定位。
而集群的系统,在每一台server上的内容一定是一致。这样,在一台server当前无法继续提供服务时,应用服务器会把请求无缝的路由到集群中的另一台机器上,保证服务不间断。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics