集群与分布式分解.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集群与分布式 We Can Do It 概念 什么是集群 什么分布式 分布式集群 优势 集群 集群是一组相互独立的、通过高速网络互联的计算机,构成的一个组,并以单一系统的模式加以管理。 集群中的各节点都具有相同的业务逻辑,有多个同类任务时,可以并行处理。 集群是通过提高单位时间内执行的任务数来提升效率 分布式 分布式系统是建立在网络之上的软件系统。 分布式系统中的各计算单元都处理不同的子任务,最终协同完成整个任务。 分布式是以缩短单个任务的执行时间来提升效率的 分布式集群 如果用集群来做为分布式的处理单元,就形成了分布式集群。 它可以将任务切分成多个不同的子任务,然后由集群对处理子任务,从而大大提高了任务的执行效率。 通过集群,又可以完成负载均衡、故障转移等功能,提高可靠性和稳定性。 优势 1 提高性能 一些计算密集型应用,如:天气预报、核试验模拟等,需要计算机要有很强的运算处理能力,现有的技术,即使普通的大型机器计算也很难胜任。这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能力来满足要求。提高处理性能一直是集群技术研究的一个重要目标之一。 2 降低成本 通常一套较好的集群配置,其软硬件开销要超过几百万RMB。但与价值上千万的专用超级计算机相比已属相当便宜。在达到同样性能的条件下,采用计算机集群比采用同等运算能力的大型计算机具有更高的性价比。 3 提高扩展性 用户若想扩展系统能力,不得不购买更高性能的服务器,才能获得额外所需的CPU 和存储器。如果采用集群技术,则只需要将新的服务器加入集群中即可,对于客户来看,服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升级。 4 增强可靠性 集群技术使系统在故障发生时仍可以继续工作,将系统停运时间减到最小。集群系统在提高系统的可靠性的同时,也大大减小了故障损失。 集群技术 服务发现 负载均衡 故障转移 水平扩展与动态均衡 服务发现 大家有玩过联机游戏吗? 他们是怎么联系起来的呢? 服务发现 服务发现基本功能:获知集群上所有服务的地址 服务发现三种方式: 手动预配 每台服务实例配置文件中都手动配置好了其它服务的IP和端口 服务发现服务 每台服务实例向平台注册自已地址,同时可以获知其它服务地址 广而告之 服务实例主动在网域内广播,收到广播的服务可与之建立互信 服务发现 心跳机制 服务发现的最大难题——识别失效节点 服务需要定时刷新它在服务列表中的状态租约,以证明自己还活着。 基本上高可用集群都有一套心跳机制,专业的服务发现服务(如:Zookeeper、Eureka)也都有这样一套。 而一些集群(如:Helix,Hadoop等),也会实现另一套心跳机制,同时在心跳请求上附加信息(比如任务信息、资源信息等)来提高心跳的价值。 负载均衡 所谓负载均衡(Load Balance),就是将任务分摊到多个操作单元上进行执行 集群中经常需要使用负载均衡来分派任务,以达到最佳的使用效率 Solr的负载均衡 故障转移 故障转移(Failover),即活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。 故障转移离不开主、备机的搭建,备份策略的选择以及主、备选举策略。 Solr的主备机制 水平扩展与动态均衡 一致性Hash Hash槽 更多分布式技术 分布式锁 多服务实例竞争同一资源时,需要有个机制分配资源,同时需要在服务失效时主动回收资源。 分布式事务 一项任务需要每个服务实例都完成,才算真的完成。参考 协调服务 服务协调器(Zookeeper)职责: 服务监控,故障检测。 信息同步,服务状态通知。 负载均衡,服务状态维护。 故障转移,避免单点故障。 * * 假如,有一项任务(需要1个人月)分给了三个人做。后面添加一个人,那任务怎么分呢? 叫每个都匀出一些任务,还是叫一个人分一些出来即可? 一致性Hash就是这样一种策略,缺点在于平衡性。也就是说,新加入的人会分担一个人的活,这样,这两人比其它人要轻松。这样就不平衡了。 -------------------------------------- 假如,我们这样分任务。预先把任务分成30份,然后平分给三个人做。后面新加一个人,让每个人把他没做完的匀一些出来,最终四个人任务量一样多。这样就是平衡了。 * 假如,有一项任务(需要1个人月)分给了三个人做。后面添加一个人,那任务怎么分呢? 叫每个都匀出一些任务,还是叫一个人分一些出来即可? 一致性Hash就是这样一种策略,缺点

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档