`
daodan988
  • 浏览: 31592 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

分布式 集群

阅读更多
集群概念
1. 两大关键特性
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:

·  可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

·  高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

2. 两大能力
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:

·  负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。

·  错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。

负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。

3. 两大技术
实现集群务必要有以下两大技术:

·  集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基 本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均 衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有 一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。

·  内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。

具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。

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

高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
================================================

具体包括:

Linux High Availability 高可用集群                                      
(普通两节点双机热备,多节点HA集群,RAC, shared, share-nothing集群等)

Linux Load Balance 负载均衡集群                                     
(LVS等....)

Linux High Performance Computing 高性能科学计算集群    
(Beowulf 类集群....)

分布式存储                                                                        
其他类linux集群             
(如Openmosix, rendering farm 等..)

详细介绍
1. 高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机".
高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。

2. 负载均衡集群(Load Balance Cluster)

负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。

3. 科学计算集群(High Performance Computing Cluster)

高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。

高性能计算分类  
高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上 参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。

分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。

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

补充:具体的技术: web集群+ EJB分布式集群(JBOSS/WEBLOGIC)+DataBase集群

=================================================================================



1、那些所谓分布式计算、集群是什么?
2、EJB跟他们有什么关系?
3、我的项目需要用到EJB么?

回答:
1、那些所谓分布式计算、集群是什么?
简单来说他们都是要通过多台机器来完成工作。我认为从工作完成的方式可以分为两种:一、多机合作,就是把一个“工作”拆分多份,交由多个CPU(或者机 器)进行处理,最后把结果综合起来。这种方式一般用于需要强大计算的工作,例如什么流体力学、DNA分析等等。这一类的系统对绝大部分企业来说都是很少涉 及到的。

第二种是单机完成,也就是说一项“工作”一台机器就能完成。比如说你用PHP写一个查询用户购物记录的程序,这个PHP只需在一台机器上面就能完成请求, 当然是指业务层;即是说到数据库的话,在数据层我们也是只需一台机器就可以了。事实上即使有多台机器,在一次查询请求中,也只能用到一台机器。那么在这种 情况下为什么还要用到多台机器呢呢,是因为需要负载均衡与高可用性这两种特性。

对于大多数开发人员来说,提到集群的时候一般都是指后面这种情况,毕竟大部分企业很少涉及到所谓的“科学计算”的。关于分布式计算、集群是一个很庞大的话题,不知道我的三言两语能否给你一点概念上分类的帮助。

2、集群技术已经出现很久了,远在EJB之前,EJB只是在Java实现集群的一种(不是唯一)方式。事实上在EJB的规范中并没有提到集群,但EJB技 术为实现EJB集群提供了坚实的基础。因为EJB是一个得到广泛支持的标准,在集群应用又有很多成功的案例,所以在企业应用中提到集群常常会提到(采 用)EJB。

在EJB集群中的每台机器部署相同的EJB,才能做到负载均衡与高可用性。

3、“谈到EJB必谈分布式计算”这是正常的,因为分布式计算就是EJB的目标,这在EJB规范中写着的,这也是你选择是否采用EJB的重要根据。实现负 载均衡与高可用性可以有多种方式,在采用三层结构构造系统时,如果你需要业务层实现负载均衡,或者在业务层与其他层在物理上分离,EJB就非常适合。如果 你的程序只是运行在一个JVM上,EJB技术就显得不必要了。

EJB还提供其他的特性,但当然无法提供所有特性,是否在你的项目中采用EJB,只有在你对EJB技术有所了解后再针对项目的具体需求才好做出判断。
分享到:
评论

相关推荐

    spark 分布式集群搭建

    ### Spark Standalone 分布式集群搭建详解 #### Spark Standalone 运行模式概述 Spark Standalone 是 Apache Spark 提供的一种自带的集群管理模式,主要用于管理 Spark 应用程序的执行环境。这种模式简单易用,适合...

    基于Hadoop的分布式集群大数据动态存储系统设计.pdf

    为了解决这些问题,本文提出了一种基于Hadoop的分布式集群大数据动态存储系统的设计方案。 首先,需要明确Hadoop在大数据处理中的地位和作用。Hadoop是一个开源的分布式存储和计算平台,它提供了一套完整的生态系统...

    hadoop2.8.4完全分布式集群搭建

    本人搭建hadoop完全分布式集群时,写的文档,内有详细步骤,

    activemq分布式集群视频教程

    activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程

    基于Hadoop架构的国产化分布式集群平台.pdf

    尤其是在军事信息系统中,大数据分析和数据安全的需求推动了分布式集群平台的发展,而国产化软硬件在其中扮演着举足轻重的角色。基于Hadoop架构的国产化分布式集群平台的构建,不仅是一种技术上的革新,更是适应...

    分布式集群存储及其优势浅析.pdf

    分布式集群存储是一种将多个独立的存储设备通过网络连接起来,使其工作起来像单一的、功能更强大的存储系统的技术。这种架构能够提供高可靠性和扩展性,并能处理大规模数据。它为当前存储系统从传统架构向更新的集群...

    MSSQL SQLServer分布式集群Python自动故障转移脚本

    【MSSQL 】SQLServer分布式集群Python自动故障转移脚本 #安装依赖 pip install pymssql #windows打包 pyinstaller -w -F mssqlScript.py ######or pyinstaller -F mssqlScript.py #windows运行 ./mssqlScript.exe ...

    Redis分布式集群配置文档

    Redis分布式集群配置文档 Redis是一种基于内存的NoSQL数据库,它支持数据持久化、事务、LUA脚本、管道、发布/订阅、消息队列等功能。为了提高Redis的可靠性和可扩展性,需要对其进行分布式集群配置。本文档将详细...

    分布式集群系统架构设计及应用部署.pdf

    分布式集群系统架构设计及应用部署是当前互联网架构设计中的一个核心技术点,它能够有效应对高并发访问量和海量数据带来的压力。为了提高系统的高吞吐、高并发和高可靠性,分布式集群系统的构建成为企业级应用部署的...

    龙果学院 MySQL大型分布式集群

    MySQL大型分布式集群 MySQL大型分布式集群 MySQL大型分布式集群

    龙果MySQL大型分布式集群完整视频

    本资源“龙果MySQL大型分布式集群完整视频”提供了一套全面的教程,旨在帮助学习者掌握MySQL在大规模分布式环境中的应用。 在大型分布式集群中,MySQL的主要知识点包括: 1. **主从复制**:这是MySQL实现数据冗余...

    MySQL分布式集群部署文档集合

    本篇将详细讲解基于提供的文件名所涵盖的三个关键知识点:MySQL双机集群、MySQL AB Cluster以及MySQL分布式集群部署。 1. MySQL双机集群: 双机集群,也称为主备复制,是一种常见的高可用性解决方案。在这个配置中...

    MySQL大型分布式集群

    MySQL大型分布式集群

    MySQL分布式集群之MyCAT资源下载

    MySQL分布式集群是大型系统中常见的解决方案,以应对高并发、大数据量的挑战。MyCAT,全称MetaCat,是一款开源的数据库中间件,它能够将单一的MySQL数据库扩展为分布式数据库系统,支持分库分表,实现数据的水平扩展...

    CentOS下 dubbo+zookeeeper伪集群和分布式集群

    为了搭建Hadoop平台学习,前期搭建dubbo+Zookeeper集群,这里有详细介绍zookeeeper伪集群和分布式集群, dubbo在tomcat下安装等过程。相关jdk、war、jar等也在百度云...

    Hadoop-0.21.0分布式集群配置

    Hadoop-0.21.0分布式集群配置.doc

    分布式集群电商平台搭建方案 代码

    分布式集群电商平台搭建方案 在构建大型的电商平台时,分布式集群技术是不可或缺的组成部分。它能够提高系统的可扩展性、容错性和性能,确保在高并发访问下也能稳定运行。本方案将详细介绍如何使用Java实现一个...

    Hbase完全分布式集群搭建(详细+,看完就会,).docx

    HBase 完全分布式集群搭建 HBase 是一个基于 Hadoop 的分布式 Nosql 数据库,可以提供高性能、可靠的数据存储和查询服务。为了搭建一个完全分布式的 HBase 集群,我们需要了解 HBase 的架构、组件和配置。 一、...

    Redis分布式集群部署安装及细节.docx

    "Redis分布式集群部署安装及细节" 一、Redis集群介绍 Redis集群是一种分布式的NoSQL数据库解决方案,它可以将多个Redis节点组合成一个集群,以提高数据存储和检索的性能和可用性。Redis集群支持自动发现节点、...

Global site tag (gtag.js) - Google Analytics