可用性

hdfs高可用性(HDFS High Availability)

五迷三道 提交于 2020-03-16 06:47:22
Hadoop2.2.0中HDFS的高可用性实现原理 http://www.iteblog.com/archives/833 官方文档 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-High-Availability-Guide/cdh4hag_topic_2_1.html http://kicklinux.com/quorum-based-storage-ha/ 我自己参考官方文档,翻译总结CDH4中HDFS高可用性的实现原理 CDH4 主要采用两种方案: Quorum-based Storage Shared storage using NFS 注:Cloudera建议采用Quorum-based Storage来作为HA的解决方案,因为Shared storage using NFS只在CDH4中支持,CDH5不支持。如果想从NFS转换成Quorum-based Storage,请看 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-High-Availability-Guide/cdh4hag_topic_2_7.html#concept_ddg_ryd

CAP和BASE理论

ぐ巨炮叔叔 提交于 2020-03-15 11:29:40
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt370 1. CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。 CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 1.1 一致性(Consistency) 一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。 1.2 可用性(Availability) 可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。 1.3 分区容错性(Partition tolerance) 分区容错性指“the system continues to operate despite arbitrary message loss or failure of part of

第六章 异步化与缓存原则

丶灬走出姿态 提交于 2020-03-15 01:47:42
1.业务流程异步化:通过服务异步调用的方式让业务流程中业务逻辑上允许同步执行的服务同时被调用,从而解决大量远程服务线性调用带来的性能问题。 2.数据库事务异步化:大事务拆成小事务,降低数据库的资源被长时间事务锁占用而造成的数据库瓶颈,提升平台的处理吞吐量和事务操作响应时间。 3.CAP理论:一个分布式系统最多只能同时满足一致性、可用性和分区容错性。 (1)一致性:指更新操作成功并返回客服端完成后,所有节点在同一时间的数据完全一致性。 (2)可用性:用户在访问数据时可以得到及时的响应。 (3)分区容错性:分布式系统在遇到某节点或网络分区故障的时候,仍能够对外提供满足一致性和可用性的服务。 4.BASE理论:BASE是指基本可用(Basically Available)柔性状态(Soft State)、最终一致性(Eventual Consistency) (1)基本可用:分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。 (2)柔性状态:允许系统存在中间状态,而该中间状态不会影响系统整体可用性 (3)最终一致性:指系统中的所有数据副本经过一定时间后,最终能达到一致的状态。 5.高可用 = 系统构建在多机 = 分布式系统 高性能 = 分布式系统的副产品 6.柔性事务如何解决分布式事务问题 (1)引入日志和补偿机制 (2)可靠消息传递(幂等) (3)实现无锁 7

一些不好理解的名词解释

≯℡__Kan透↙ 提交于 2020-03-13 05:45:56
负载均衡 ,建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 高可用性 (High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。 (1)主从方式 (非对称方式) 工作原理:主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。 (2)双机双工方式(互备互援) 工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。 (3)集群工作方式(多服务器互备方式) 工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。 来源: https://www.cnblogs.com/ultranms/p/9504659.html

网站架构的高可用性总结

和自甴很熟 提交于 2020-03-13 05:41:54
一、产品发布与测试: 1、产品的发布测试:自测---公测--预发布测试---典型逻辑案例测试---正式发布(灰度发布); 2、互联网产品一周发布一次,机制:每周四发布(前三天产品研发,周四发布,如有问题,周五解决问题;); 3、灰度发布测试,采取部分服务器先发布,没有任何问题,产品在所有服务器上部署;(AB版本测试); 4、自动化测试(目前研发团队实力无法做大,期待更完善的研发团队) 二、产品发布要求: 1、没有监控功能的产品或者功能模块,不允许发布; 监控:用户行为监控(客户端:百度统计等,服务端)、服务器性能监控(工具:Ganglia)、运行数据报告; 三、代码控制: 1、代码版本控制工具:SVN、GIT; 主要采取:主干发布,分支开发; 四、产品架构的高可用性: 1、网站可用性的度量和考核; 可用性度量:2个9是基本可用,网站年度不可用时间不超过88小时;3个9是较高可用,网站年度不可用时间不超过9小时,4个9是具有自动恢复能力的的高可用,网站年度 不可用时间不超过53分钟(QQ是4个9);5个9是极高可用性,网站年度不可用时间不超过5分钟。 可用性考核:对外是服务承诺,对内是考核指标;(互联网公司,网站可用性与工程师、架构师的绩效关联); 高可用的应用:负载均衡 + 集群;集群中的用户上下文:单独的Session(也可以是redis)管理,利用redis解决用户上下文问题

分析可用性和可修改性战术

时光怂恿深爱的人放手 提交于 2020-03-13 05:39:47
  这周我们学习这两个方面的内容了。老师上课的时候讲到了可用性和可修改战术。可用性战术将会阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。可修改性战术的目标是控制实现、测试和部署变更的时间和成本。 然后提到了《大型网站技术架构:核心原理与案例分析》第五、六、七章,通过对这三章的扩展阅读,对可用性和易用性战术也有了一些自己的认识。对于自己之的程序也有了新的认识,当时觉得网站已经很好了,现在想想,很多实际的功能还有不完善的地方以及有很多的bug没有提示也没有解决方案。根据文章中的内容,我们需要从可用性,易用性,可扩展性方面着手。 首先我们了解一些可用性。可用性与系统故障及其相关后果有关。网站的页面功能完整呈现在最终用户面前,需要经过很多个环节,任何一个环节出了问题,都可能导致网站页面不可访问。要保证一个网站永远安全几乎是一件不可能完成的使命。网站不可用也被称作网站故障。当系统不再提供其规范中所说明的服务时,就出现了系统故障。系统的用户可以观察到此类故障。有两个著名的例子。书中有两个涉及到可用性崩溃的较为著名的例子,一是2010年1月12日,百度被黑客攻击,其DNS域名被劫持,导致百度全站长达数小时不可访问。2011年4月12日,亚马逊云计算服务EC2发生故障,其ESB服务不可用,故障持续了数天,最终还是有部分数据未能恢复。 对于实发性的项目

springcloud-组件原理

試著忘記壹切 提交于 2020-03-09 22:02:16
从图中可以看出 Eureka Server 集群相互之间通过 Replicate 来同步数据,相互之间不区分主节点和从节点,所有的节点都是平等的。在这种架构中,节点通过彼此互相注册来提高可用性,每个节点需要添加一个或多个有效的 serviceUrl 指向其他节点。 如果某台 Eureka Server 宕机, Eureka Client 的请求会自动切换到新的 Eureka Server 节点。当宕机的服务器重新恢复后, Eureka 会再次将其纳入到服务器集群管理之中。当节点开始接受客户端请求时,所有的操作都会进行节点间复制,将请求复制到其它 Eureka Server 当前所知的所有节点中。 另外 Eureka Server 的同步遵循着一个非常简单的原则:只要有一条边将节点连接,就可以进行信息传播与同步。所以,如果存在多个节点,只需要将节点之间两两连接起来形成通路,那么其它注册中心都可以共享信息。每个 Eureka Server 同时也是 Eureka Client ,多个 Eureka Server 之间通过 P2P 的方式完成服务注册表的同步。 Eureka Server 集群之间的状态是采用异步方式同步的,所以不保证节点间的状态一定是一致的,不过 基本能保证最终状态是一致的。 Eureka 分区 Eureka 提供了 Region 和 Zone 两个概念来进行分区

浓缩精华的架构演进过程,经验总结,值得收藏!

◇◆丶佛笑我妖孽 提交于 2020-03-09 12:27:53
架构设计的演进过程 业务驱动技术的发展是亘古不变的道理。最开始的时候,业务量少,业务复杂度低,采取的技术也相对简单,基本满足用户对功能的需求。随着IT信息化的普及,更多的交易放到了网络上,信息量增加和访问次数频繁就是要解决的问题了。因此,逐渐加入了缓存、集群等技术手段。同时对业务的扩展性和伸缩性的要求也越来越高。高并发、高可用、可伸缩、可扩展、够安全的软件架构一直是架构设计追求的目标。今天我们来看一下架构设计经历了哪些阶段,每个阶段都解决了哪些问题,又引出了哪些新问题。主要是引起大家的思考,在不同的业务发展阶段采取合适技术手段,用变化拥抱变化是IT人追求的目标。 应用与数据一体模式 最早的业务应用以网站、OA等为主,访问的人数有限,单台服务器就能够应付。通常,将应用程序和数据库部署到一台服务器上面,如图1-1所示。在这一阶段,我们利用LAMP(Linux Apache MySQL PHP)技术就可以迅速搞定,并且这些工具都是开源的。很长一段时间内,有各种针对这种应用模式的开源代码可以使用。这种模式基本上没有高并发的要求,可用性也很差。有的服务器采用托管模式,上面就安装了不同的业务应用,一旦服务器出现问题,所有的应用就罢工了。不过其开发和部署成本相对较低,适合刚刚起步的应用服务。图1 就描述了单个应用和数据库运行在单台服务器的模式,我们称这种模式为应用与数据一体模式。 图 1

KeepAlived高可用性集群简介

浪子不回头ぞ 提交于 2020-03-08 04:27:42
我们之前都是一个调度器来调度多台web后端服务器 但是调度器也有不能工作的时候,完一坏了所有的web服务器都不能访问,这就要求调度器也要备份 因此就引出了高可用的集群KeepAlived 也就是有多个调度器(有主有备),利用keepalived保证web服务通过正常的调度器工作 所有调度器同时宕机的可能性是很小的 1.keepalived的基本概念 Keepalived是Linux下的一个轻量级别的高可用解决方案 高可用(High Avalilability,HA),其实两种不同的含义:广义上来讲,是指整个系统的高可用性,狭义上来讲就是主机的冗余和接管 Keepalived起初是为LVS设计的,专门用来监控集群系统中的各个服务的节点的状态 它根据TCP/IP参考模型的第三,第四,第五层交换机制检测每个服务器的节点状态 如果某个服务器出现异常,或者工作出现故障,keepalived将检测到,并将出现故障的服务器节点从集群系统中剔除 这些工作都只自动完成的,不需要人为干预,需要人工完成的只是修复出现故障的服务节点 也就是可以使用keepalived可以实现调度器的转换 后来keepalived又加入了VRRP的功能 VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议出现的目的是 解决静态路由出现单点故障的问题

一致性协议

别等时光非礼了梦想. 提交于 2020-03-07 19:34:11
CAP 理论 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求最多只能同时较好的满足两个 因此根据CAP原理将NoSQL数据库分成了满足 CA原则 、满足 CP原则 和满足 AP原则 三类 CA - 单点集群,满足一致性,可用性的系统,通常在可扩展上不太强大 ------ 关系型数据库 RDBMS CP - 满足一致性,分区容忍性必须有的系统,通常性能不是特别高 ----- redis MongoDB Hbase AP - 满足可用性,分区容忍性的系统,通常可能一致性要求低一些 分区容忍性 是我们需要实现的 所以 只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。 CA 传统Oracle数据库 AP 大多数网站架构的选择 CP Redis、Mongodb 注意:分布式架构的时候必须做出取舍 。 一致性 和 可用性 之间取一个平衡。多余大多数web应用,其实并不需要 强一致性 。 因此牺牲C换取P,这是目前分布式数据库产品的方向(AP) 分布式系统(distributed system) 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件