文档章节

集群、分布式、负载均衡区别与联系

罗码码
 罗码码
发布于 2016/08/16 22:02
字数 1711
阅读 2
收藏 0

1、集群主要分成三大类(科学、高性能计算集群,负载均衡集群,高可用集群)

科学、高性能集群

它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。 该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多; 通常,这种集群涉及为群集开发并行编程应用程序,以解决复杂的科学问题。它不使用专门的超级并行计算机,而是用商业系统(如通过高速连接来链接的一组单处理器或双处理器PC),并且在公共消息传递层上进行通信以运行并行应用程序。 我们常常听说一种便宜的 Linux 超级计算机问世了,大多数情况就是指这种集群系统,其处理能力与真的超级计算机相当,而其价格与上百万美元的专用超级计算机相比是相当的便宜。

负载均衡集群

它是利用一个集群中的多台单机,完成许多并行的小的工作。 一般情况下,如果一个应用使用的人多了,那么用户请求的相应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器 都能相应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系 统的可用性和稳定性。这类集群在网站中使用较多;

负载均衡群集为企业需求提供了更为实用的系统。如其名称,这种系统使负载可以在多台计算机中尽可能平均地分摊处理。负载可以是需要均衡的应用程序 处理负载或网络流量负载。在系统中,每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也是如此。

高可用集群

它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。
高可用性群集的出现是为了使群集的整体服务尽可能可用。如果高可用性群集中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,对用户没有任何影响。


在群集的这三种基本类型之间,经常会发生交叉、混合。比如:在高可用性的群集系统中也可以在其节点之间实现负载均衡,同时仍然维持着其高可用性。

2、 负载均衡系统: 负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一 台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、 b、c,那么分别由服务器A、B、C来处理;

3、 分布式是指将不同的业务分布在不同的地方。
而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。

举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提 供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统 (Cluster)主要解决下面几个问题:

高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过 去,以实现对用户的不间断服务。

高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分 析,化学分析等。

负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

分享到:

 

本文转载自:http://llyzq.iteye.com/blog/1133616

共有 人打赏支持
罗码码
粉丝 0
博文 154
码字总数 41577
作品 0
珠海
高级程序员
私信 提问

暂无文章

redis&memcached&SQL&NoSQL

Why 一个应用肯定有两部分逻辑:数据逻辑和业务逻辑。 数据逻辑包括各种I/O,和内部的数据的处理,也就是在内部如何组织数据结构,变量也属于这一部分。 当一个应用变成一个进程,它负责数据逻...

backbye
今天
2
0
什么时候使用字节流、什么时候使用字符流,二者的区别

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 InputStream 和OutputStream,...

watermelon11
今天
6
0
Alpakka Kafka,反应式Kafka客户端

Alpakka Kafka 是一个要用于 Java 和 Scala 语言的开源的流感知和反应式集成数据线项目。它建立在 Akka Stream之上,提供了 DSL 来支持反应式和流式编程,内置回压功能。Akka Streams 是 Re...

羊八井
今天
5
0
PHP7源码编译安装详解

$ yum groupinstall "development tools"$ yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype \freetype-devel libpng libpng-devel libxml2 ......

问题终结者
今天
5
0
Django学习笔记-从创建虚拟环境到启用服务

1 前置条件 windows系统下,目前已经完成anaconda3或miniconda3的安装,这也意味着已经完成了python3的安装。 2 创建虚拟环境 1、通过Anaconda Prompt,使用conda命令创建虚拟环境(base) e...

davidwbnu
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部