`
biaoming
  • 浏览: 266897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

集群基础知识

    博客分类:
  • java
阅读更多

1.集群

集 群是提供单独服务有统一简单界面的服务器的松散组合。集群提供的服务与集群中的单个服务器所提供的服务一致,客户端不会意识到他们的请求是由一个集群服务 的,也无权决定集群中的那一台服务器来处理他们的请求,集群会根据特定的算法选择适当的应用服务器来执行请求。集群增加了系统的可用性和可靠性。

2.可用性

通常描述为测量客户可以使用系统时间的百分比。可用性同服务是否有效无关,而是客户能否获得服务。可用性的原则说明如下:如果单台应用服务器的可用概率为1/m,那么此单台服务器不可用的概率便是11/m。如果有n台应用服务器,系统不可用概率为(11/m)n。随着n的增大,(11/m)n减小,意味着集群的可用性总是比单台服务器高。集群通过增加应用服务器,避免的客户访问单个应用服务器的单点失败,提高了系统的可用性。

可 用性在集群中表现为每个服务都有一个主服务器和多个备用服务器可以提供服务,但在任一时刻只能由主服务器提供,其他服务器作为备用服务器。如果主服务器不 能提供服务,则从备用服务器中选择一台提供服务。集群中的每一台服务器既可以作为主服务器,也可以作为另外一个服务的备用服务器。集群对一个服务的处理能 力与单台服务器的处理能力是相同的。

3.可靠性

可 靠性是当系统的负载发生变化是否保持响应级别恒定。有多种方法可以测量系统的可靠性,比如:系统支持的注册用户的数量,在一定范围内单个方法调用所需要的 往返时间等。在大多数的企业级应用中,终端用户的数量、单位时间内的并发请求量都无法估算,可以通过增加服务器的硬件资源内存、CPU等来提高系统的可靠性。集群则允许一组应用服务器来共同响应客户端的并发请求,保证系统的响应级别。

4.负载平衡

负 载平衡是集群中的一项重要技术,能够将客户端不同的请求转发给集群中的不同节点(集群中的单台服务器成为节点),实现节点间的分散请求的目的,优化系统的 性能。通常有不同的负载平衡算法来实现任务的分配。常用的负载平衡算法包括轮循法、加权法、加权轮询调度、动态反馈负载均衡法等。负载平衡器可以是基于硬 件或者基于软件的。在应用服务器中,多采用基于软件的负载平衡器,因为其可以作为独立的组件运行,也可以被构建到服务器中。负载平衡使集群中的节点尽可能 得平均分配负载,充分利用集群中各个节点的处理能力,提高对任务的处理效率。负载平衡多用于处理运行同一组应用程序的大量用户,每一个节点处理一部分负 载,各个节点之间可以动态得分配负载以实现平衡。集群的处理能力是所有节点处理能力的总和,当某一个节点发生故障时,不会影响其他的节点,保证了服务的连 续性。

负载平衡器位于客户端与目标对象之间,将客户端的请求分发到不同的目标对象上进行处理,这些目标对象具有相同的功能。通过负载平衡将请求分散到不同的服务节点,提高了应用系统的高可用性与高可靠性。

5.失败转发

如果客户端请求的节点处理失败,则将客户端的请求自动被转发到集群中的另一个节点上。这一过程对客户端来说应该是透明的,也就是说客户端不会察觉到在服务器端发生了任何异常,客户端只关心最后结果是否被正确的返回。失败转发避免了单点失败,提高了应用程序的性能,能够满足24×7的服务。

失败转发与负载平衡有很大的不同。当客户端第一次请求目标对象时,如果发生了系统故障,应用系统应该能够意识到并将客户端的请求透明地转发到另外一个节点上,这一过程无需客户端感知。失败转发不仅可以提高系统的可靠性,还大大提升了系统的容错能力,提供了高质量的服务。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics