• 数据库高可用浅析(1)


    什么是高可用?

    目前的理解,高可用是指通过设计减少系统不能提供服务的时间。

    如果系统一直能不间断提供服务,我们可以说系统的可用性是100%;

    如果系统在时间单位内有1%的时间不能提供服务,我们可以说系统的可用性是99%。

    业内通常使用MTTF和MTTR来量化一个模块的可用性。

    平均无故障时间(MTTF)

    MTTF(mean time to failure),指模块处在正常服务状态的平均时间。

    平均修复时间(MTTR)

    MTTR(mean time to repair),指模块处在服务中断状态的平均时间。

    系统可用性的定义是MTTF/(MTTF + MTTR),一个大于等于0,小于等于1的数值。且该数值越大,系统可用性越高。业界最常用的方法是用9的个数来描述系统可用性,比如3个9的可用性,指系统在99.9%的时间里可用,而5个9的可用性意味着系统在99.999%的时间里都是可用的。
    下表展示了基于9的个数描述系统可用性而计算得出的,不同可用性的情况下,系统每年允许的服务不可用时间。

    可用性年服务不可用时间
    99%(2个9) 3.65天
    99.9%(3个9) 8.76小时
    99.99%(4个9) 52.56分钟
    99.999%(5个9) 5.26分钟
    99.9999%(6个9) 31.54秒

    如何保障系统的高可用

    对于数据库,我们都知道,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。

    方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他备份能够顶上。

    保证系统高可用,架构设计的核心准则是:冗余。

    有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。

    所以,在方法论上,高可用是通过冗余+自动故障转移来实现的。

    整个互联网分层系统架构的高可用,又是通过每一层的冗余+自动故障转移来综合实现的

    总结:

    1、高可用是指通过设计减少系统不能提供服务的时间

    2、在方法论上,高可用是通过冗余+自动故障转移来实现的。

  • 相关阅读:
    【VUE3.0体验】关于路由的一些坑
    TensorFlow中的卷积函数
    TensorFlow源码安装
    ubuntu远程桌面
    TensorFlow图像处理API
    C程序员眼里的Python
    深度剖析HashMap的数据存储实现原理(看完必懂篇)
    golang 互斥锁和读写锁
    golang goroutine的调度
    golang channel的使用以及调度原理
  • 原文地址:https://www.cnblogs.com/mingfan/p/13047169.html
Copyright © 2020-2023  润新知