一:集群概念:
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:分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方。
而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
发表评论
-
java的日志处理指南
2016-01-14 15:35 1972Java日志基础 Java使用了一种自定义的、可扩展的方法 ... -
javaWeb开发中ServletContext总结
2015-03-19 00:01 1069WEB容器在启动时,它会为每个WEB应用程序都创建一个对应 ... -
java日志组件介绍(common-logging,log4j,slf4j,logback )
2015-03-17 10:12 1005common-logging common-logging ... -
hibernate本地sql(native查询)查询的3种转换方式
2015-03-11 08:51 871在hibernate使用的过程中.我们通常需要对结果进行解释 ... -
hibernate 的查询
2013-12-03 14:58 735QBC (Query By Criteria) 主要有Cri ... -
Linux下jdk安装
2012-02-02 18:04 7421下载需要安装的的jdk文件,放在一个用户指定文件夹中,进 ... -
验证码功能的实现
2011-08-08 15:23 920最近,在弄一个微薄类的sns项目,需要用到验证码,记录下。代码 ... -
velocity的使用示例(转)
2011-07-28 11:48 1136不少人看过或了解过Velo ... -
java程序中访问url接口
2011-07-06 10:56 4276在多人开发项目中,我们经常要在自己程序内部调用别人的http ... -
JAVA操作COOKIE的总结
2011-06-10 11:52 12611.设置Cookie Cookie cookie = ... -
常用JAVA过滤器用法
2011-06-10 10:32 1451java 代码 一、使浏览器不缓存页面的过滤器 i ... -
Java中cookie和session 1相关应用之2
2011-06-09 15:29 1323十一、session在不同环境下的不同含义 sessio ... -
Java中cookie和session 1相关应用
2011-06-09 15:27 1246一、cookie机制和session机制的区别 具体来 ... -
编写你自己的单点登录(SSO)服务
2011-05-31 20:56 755单点登录(SSO)的技术 ... -
单点登陆(Single Sign On-SSO)
2011-05-31 20:54 1053本文以某新闻单位多媒 ... -
javamail实现登录发送邮件
2011-05-20 16:25 1348[color=darkred][/color]/** ...
相关推荐
集群通信系统是一种高效利用无线电频谱资源,提供多用户共享通信服务的技术,广泛应用于公共安全、交通管理、商业运营等领域。这种系统通过集中控制和动态分配频率,实现了多个用户之间的协同工作,提高了通信效率和...
### Linux集群系统详解 在数字化转型的浪潮下,企业对数据处理能力的需求日益增长,而传统的单体服务器架构已难以满足高效、稳定的数据处理需求。Linux集群系统作为一种强大的解决方案,应运而生,通过整合多台...
**二、Spring Data Redis简介** Spring Data Redis是Spring框架的一个模块,它提供了对Redis的高级抽象,使得开发者可以方便地在Spring应用中使用Redis。Spring Data Redis支持连接池、事务、模板模式以及...
1. **Redis简介** Redis是一种高性能的键值数据库,支持多种数据结构如字符串、哈希、列表、集合和有序集合。由于其内存存储和高效的性能,Redis常被用于缓存、消息代理以及像Session共享这样的场景。 2. **...
- 分类包括常规转信台、点同播网、准集群和集群等,每种类型在通信方式和功能上有所不同。 2. **集群通信系统**: - 从常规通信升级为集群,主要是通过增加控制器和控制信道,使得所有用户在控制信道上守候,通话...
#### 一、LVS简介与应用场景 LVS(Linux Virtual Server)是一种基于Linux的集群配置方案,特别适用于Web集群应用。它通过构建虚拟服务器集群,提高系统的可伸缩性和可用性,同时降低单点故障的风险。 #### 二、...
1. **Netty简介**:Netty是一个高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。它提供了丰富的API和高度可定制的管道(Pipeline)模型,使得网络编程变得更加简单。 2. **RPC...
#### 一、Redis集群简介 Redis 是一款高性能的键值对存储系统,因其出色的性能表现被广泛应用于缓存、消息队列等多个领域。随着业务规模的不断扩展,单一节点往往无法满足高可用性和负载均衡的需求,因此引入了...
#### LVS模式简介 LVS(Linux Virtual Server)是一种用于构建高性能、高可用性服务器集群的技术,主要适用于Linux操作系统。LVS支持四种不同的工作模式:NAT(Network Address Translation)、TUN(IP Tunneling)...
- **备份与恢复**:通过快照和恢复功能,可以定期备份集群数据,当系统出现问题或需要迁移时,可以迅速恢复数据。 - **动态变更设置**:Elasticsearch允许在运行时动态调整某些设置,如增加索引副本数量、修改索引分...
#### 一、ELK简介 **ELK** 是 Elasticsearch、Logstash 和 Kibana 的缩写,这三个组件一起构成了一个强大的日志处理系统。 1. **Elasticsearch**:作为分布式搜索和分析引擎,主要用于存储、搜索和分析数据。 2. *...
前言 Redis作为内存数据库,需要具备高可用的特点,不然如果服务器...简介 Redis Sentinel集群通常由3到5个节点组成,如果个别节点挂了,集群还可以正常运作。它负责监控Redis集群的健康情况。如果主节点挂掉,Sentin
【Dbbridge简介】 DBbridge是一款高效的数据传输工具,主要用于ETL(Extract-Transform-Load)过程,即数据抽取、转换和加载。它支持单机和集群两种部署模式,能满足不同规模的数据处理需求。DBbridge提供了丰富的...
**Linux Virtual Server (LVS) 简介** Linux Virtual Server(LVS)是一种在Linux操作系统上实现的高性能、高可用的网络服务集群解决方案。它通过IP负载均衡技术和基于内容请求分发技术,使得多台服务器可以协同...
**一、cfssl简介** `cfssl`是由Cloudflare开发的一套命令行工具,用于生成和管理SSL/TLS证书。它包括`cfssl`(签名工具)、`cfssljson`(JSON到PEM转换工具)和`cfssl-bundle`(证书链组合工具)。通过这些工具,...
3. Hive简介: Hive是由Facebook开源的基于Hadoop的数据仓库工具,它将结构化的数据文件映射为一张数据库表,并提供SQL-like接口来查询数据,将SQL语句转换为MapReduce任务运行在Hadoop上。 4. Hive安装与配置: ...