当前位置:首页 > 开发 > 互联网 > 正文

HA狭义与广义论

发表于: 2015-05-07   作者:cfyme   来源:转载   浏览次数:
HA
摘要: HA概念本身平淡无奇, HA者, High Availability的简称嘛!不过, 或许真的是自身愚笨, HA, HA的听多了, 还真没把它当回事。 很多年之后才真正“吃”出点儿味儿来。 我得说, 大家通常挂在嘴边的HA应该属于狭义概念上的HA, 它通常指代某种Active+Standby的Pair Service, 最长见的当然就是数据库的主备结构。反正大家天天这么招呼, 在狭义的HA层面上

HA概念本身平淡无奇, HA者, High Availability的简称嘛!不过, 或许真的是自身愚笨, HA, HA的听多了, 还真没把它当回事。 很多年之后才真正“吃”出点儿味儿来。

我得说, 大家通常挂在嘴边的HA应该属于狭义概念上的HA, 它通常指代某种Active+Standby的Pair Service, 最长见的当然就是数据库的主备结构。反正大家天天这么招呼, 在狭义的HA层面上也能达成一定的共识, 不过, HA概念本身其实简单背后蕴含着更多的玄机。

从更广义的角度来说, HA就是HA(这可能听着有点儿绕), 为了让我们的系统可以高可用(High Availability), 我们有许多手段或者说方式来达成这个目的, 而我们常常挂在嘴边的HA, 实际上只是其中的一个手段或者几个手段的代称而已。

为了保证系统的高可用, 我们有许多种手段和方式, 下面是几种较为常见的手段和方式(不限于):

  • 复制与备份(Replication And Backup). 这主要是从存储的角度保证状态的可用性, 比如采用RAID(冗余磁盘阵列)通过冗余的数据备份存储保证数据的高可用性; 比如, 异地数据中心之间的数据备份与灾难恢复; 又比如当下KV engine实现中采用的 R+W > N 的原则等都可以属于这个范畴。

  • Failover. 为了保证系统的高可用性, 我们还可以引入Failover机制, 比如应用程序运行期间的hot swap, 或者Virtual IP之间的切换等,都属于Failover的范畴。

  • Cluster. 集群也是通过冗余来保证系统的高可用性, 只不过, 它侧重的是服务的冗余, 而不是状态的冗余(虽然也包含)。 集群内部可以存在交互,也可以不存在交互, 存在交互的集群内部各个结点通常是不对等的, 而不存在交互的集群内部各个结点通常则是对等的。 集群内部的交互, 简单的机制当然是Heart Beat, 复杂的机制可能有组播, 广播等。总之就是, 挂了我一个, 还有后来人, 预备役多着那。

  • Load balance. 负载均衡扔这里可能会感觉牵强附会,不过, 从其所起的作用来看, 把它看作保证系统高可用的一种手段也不为过。负载均衡可以减轻单一或者多个结点的负载压力, 将整体负载均衡的分配到多个结点上去,你想啊, 如果没有负载均衡, 将整个的负载都压到一个结点上去, 那这个结点不废废才怪那, 还谈啥高可用性啊, 连用都用不了了。

其它的手段和方式欢迎补充, 不多扯了。

另外, 如果实在不能达成系统某种程度的高可用性, 我们还可以选择某些妥协方案, 比如, 考虑系统的“优雅降级”(又是一个长挂嘴边的词儿), 或者允许系统小部分的不可用等。

总之那, HA就是HA(还是那么绕), 简单又不简单。为了这么个简单的概念, 诸君却需要付出不简单的努力。

 

转载地址:http://afoo.me/posts/2010-07-09-understanding-HA.html

HA狭义与广义论

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
广义表 广义表的定义 广义表是线性表的推广。 广义表一般记作LS=(d0,d1,...dn-1) 当广义表LS非空时,
转自http://blog.csdn.net/lpioneer/archive/2008/01/16/2046940.aspx 广义表(Lists,又称列表)是线
转自http://blog.csdn.net/lpioneer/archive/2008/01/16/2046940.aspx 广义表(Lists,又称列表)是线
一、前言 由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,则结构中的数据元素个数和元
广义表是对线性表的扩展——线性表存储的所有的数据都是原子的(一个数或者不可分割的结构),且所
5.1广义表—广义表的定义和基本运算 顾名思义,广义表是线性表的推广。也有人称其为列表(Lists,用
原文: javascript实现数据结构:广义表 广义表是线性表的推广。广泛用于人工智能的表处理语言Lisp,
广义表是线性表的推广。广泛用于人工智能的表处理语言Lisp,把广义表作为基本的数据结构。 广义表一
10491 - Cows and Cars Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=c
10491 - Cows and Cars Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=c
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号