分布式和集群

分布式
各个层次上可能都有分布式,比如数据库层,整个应用的数据可能一部分分布在Oracle数据库上,另部分分布在Mysql 面等等都有可能。
在应用级别上的分布式:
应用的各个业务逻辑可能分布在不同的应用服务器里面。比如应用有权限管理,公文管理,机构管理等等,每一个部分可能分布在不同的应用服务器上,不同的应用服务器一般都分布在不同的机器上面,每个机器运行一个应用服务器。当然也有不同的应用服务器分布在同一机器上,这种情况比较少见。
分布式的关键在于什么地方呢?
应用的不同组件都是组成系统的一部分,比如运行公文管理的时候必须跟权限管理沟通,把某些数据传过去,然后权限管理返回结果。权限的计算相当于分布式了,充分利用机器性能。我在这台机器的应用里面调用另一台机器应用里的某个方法必须得发出socket链接,这种调用必须得容器来处理,底层数据传输的准备,建立连接等等都由容器来做。
如果我们自己来做的话会怎么处理呢?
从这台机器上调用另外一台机器上应用的某个方法?
自己做的话可以用socket。

目前的分布式技术有:
1、RMI 远程方法调用(Remote Method Invocation)
2、CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)异构平台的分布式
3、Web Service(异构平台的分布式)
注:异构平台互相调用 还有Java Native Interface (JNI)它允许Java代码和其他语言写的代码进行交互。
4、JMS
5、EJB(能实现分布式的事务管理,java分布式最佳解决方案)

集群(cluster):
在每一个地方(可能是分布式构成的一个)有完备的功能,多个完备功能的系统组成集群。
是两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。

集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构可以分成以下几类:
  高可用性集群 High-availability (HA) clusters
  负载均衡集群 Load balancing clusters
  高性能计算集群 High-performance (HPC) clusters
  网格计算 Grid computing


  高可用性集群

  一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
  负载均衡集群
  负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。 一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。
  Linux虚拟服务器(LVS)项目在Linux操作系统上提供了最常用的负载均衡软件。
  高性能计算集群
  高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。
  HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。
  网格计算
  网格计算或网格集群是一种与集群计算非常相关的技术。网格与传统集群的主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。还有,网格通常比集群支持更多不同类型的计算机集合。
  网格计算是针对有许多独立作业的工作任务作优化,在计算过程中作业间无需共享数据。网格主要服务于管理在独立执行工作的计算机间的作业分配。资源如存储可以被所有结点共享,但作业的中间结果不会影响在其他网格结点上作业的进展。

你可能感兴趣的:(分布式和集群)