`

集群、负载均衡及分布式系统架构

阅读更多

1.集群

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

 

是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。


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

 

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

 

1.3集群系统主要解决下面几个问题:

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

 

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

 

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

 

2.负载均衡系统

先从集群讲起,

 

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

 

2.1基于DNS的负载均衡

通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

 

2.2反向代理负载均衡 (如Apache+JK2+Tomcat这种组合)
使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

 

2.3基于NAT(Network Address Translation)的负载均衡技术 (如Linux Virtual Server,简称LVS)
网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

 

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

 

举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。

 

分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。 分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

 

在群集的这三种基本类型之间,经常会发生交叉、混合。比如:在高可用性的群集系统中也可以在其节点之间实现负载均衡,同时仍然维持着其高可用性。还有一种概括性说法:cluster是手段,load banlance是目标之一。

分享到:
评论

相关推荐

    大型分布式网站架构设计与实践.带目录书签.完整版.rar

    陈康贤,淘宝花名龙隆,淘宝技术部研发工程师,2011年加入淘宝网,参与了阿里云手机商城、口碑网迁移、店铺建站、offer、支付宝卡宝、生活商城、淘宝同学等项目,在分布式系统架构设计、高并发系统设计、系统稳定性...

    基于集群的负载均衡方案

    负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据分摊到多个操作单元上执行。 通过此方案的实施,可以有效解决高并发量数据问题,提升服务平台处理速度,并且可以扩展并发...

    分布式集群、PB级别网站性能优化

    大数据高并发系统架构实战方案 大数据高并发架构实战案例分享 Piranha安装快速搭建LVS负载均衡集群 LVS负载均衡DR模式安装调试介绍 LVS负载均衡深入进阶实战 LVS调度策略及负载均衡原理深入 LVS深入及NAT集群调试 ...

    大型分布式网站架构与实践

     常见的分布式系统存储解决方案,包括MySQL的分布式扩展、HBase的API及使用场景、Redis的使用等。  如何使用分布式消息系统ActiveMQ来降低系统之间的耦合度,以及进行应用间的通信。  垂直化的搜索引擎在分布式...

    图解分布式系统架构演进之路

    以架构演变为主线,梳理了一下演变过程中出现的问题以及解决方案,文章中引用了这本书的一些内容和图片分布式和集群的概念...负载均衡session共享负载均衡就是将请求均衡地分配到多个系统上,常见的技术有如下几种DNS

    MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat)

    本文档主要介绍MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat)

    《JAVA课程设计》--Java 课程设计 轻量级的集群负载均衡设计 入口服务器端.zip

    本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...

    性能调优 海量并发 系统架构

    基于nginx的tomcat负载均衡和集群 实现多服务器负载均衡 系统性能优化 数据库 Nginx+Squid负载均衡 配置好的集群 总共三十个文档">Apache+Tomcat+Session+Memcache 高性能群集搭建 J2EE性能调优 Jboss的优化配置 ...

    《JAVA课程设计》--Java 课程设计 轻量级的集群负载均衡设计 (单台服务器监听部分).zip

    本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...

    大型网站架构系列:负载均衡详解

    介绍了负载均衡原理,分类,算法,硬件负载...这就是典型的集群和负载均衡架构:如下图:应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。负载均衡设备

    分布式RPC系统框架实战教程.zip

    1.14负载均衡 1.15 集群容错 1.16服务降级 1.17服务调用超时 1.18服务限流 1.19声明式缓存 1.20多注册中心 1.21单功能注册中心 1.22服务暴露延迟 1.23消费者的异步调用 1.24提供者的异步执行 1.25Dubbo在Spring Boot...

    构建分布式负载均衡集群的企业邮件网络平台.pdf

    #资源达人分享计划#

    网站架构技术

    大型网站架构演化 大型网站软件系统的特点 大型网站架构演化发展历程 初始阶段 应用服务和数据服务分离 使用缓存改善网站性能 缓存类型 本地缓存 分布式缓存 ...网购秒杀系统架构

    一种基于分布式服务器集群的可扩展负载均衡策略技术.pdf

    #资源达人分享计划#

    Java思维导图xmind文件+导出图片

    基于Dubbo的分布式系统架构实战 Dubbo负载均衡策略分析 Dubbo服务调试之服务只订阅及服务只注册配置 Dubbo服务接口的设计原则(实战经验) Dubbo设计原理及源码分析 基于Dubbo构建大型分布式电商平台实战雏形 ...

    产品的架构演化过程及部分互联网公司架构分析

    产品的架构演化过程及部分互联网公司架构分析。 客户层:支持PC浏览器和手机APP。差别是手机APP可以直接访问通过IP访问,反向代理服务器。 前端层:使用DNS负载均衡,CDN本地加速以及反向代理服务; 应用层:网站...

    大型高并发 web 应用系统架构

    文章首先讨论外网中在全国范围使用的镜像网站,CDN 内容分 发网络等加速技术,其次着重对本地服务器内网中集群分布,分层处理进行详细分析,包括 硬件解决方案和软件解决方案的交换负载均衡技术,基于磁盘缓存模式和...

Global site tag (gtag.js) - Google Analytics