互联网三高中的高可用的理解

大数据53

摘要:高可用(High availability,即 HA)的主要目的是为了保障「业务的连续性」,即在用户眼里,业务永远是正常(或者说基本正常)对外提供服务的。高可用主要是针对架构而言,那么要做好高可用,就要首先设计好架构,第一步我们一般会采用分层的思想将一个庞大的IT系统拆分成为应用层,中间件,数据存储层等独立的层,每一层再拆分成为更细粒度的组件,第二步就是让每个组件对外提供服务,毕竟每个组件都不是孤立存在的,都需要互相协作,对外提供服务才有意义。要保证架构的高可用,就要保证架构中所有组件以及其对外暴露服务都要做高可用设计,任何一个组件或其服务没做高可用,都意味着系统存在风险。

关键词:高可用;架构;分层;服务

中图分类号: 文献标志码:A

0 引言

要保证架构的高可用,就要保证架构中所有组件以及其对外暴露服务都要做高可用设计,任何一个组件或其服务没做高可用,都意味着系统存在风险。

[En]

To ensure the high availability of the architecture, it is necessary to ensure that all components in the architecture and their exposed services are designed for high availability. Any component or its services that are not highly available means that the system is at risk.

那么这么多组件该怎么做高可用设计呢,其实任何组件要做高可用,都离不开「冗余」和「自动故障转移」,接下来我们就来一起看看架构中的各个组件如何借助「冗余」和「自动故障转移」来实现高可用。

[En]

So how to do high availability design for so many components? in fact, any component can not do without "redundancy" and "automatic failover". Next, let's take a look at how the various components in the architecture achieve high availability with the help of "redundancy" and "automatic failover".

1 互联网架构剖析

其实任何组件要做高可用,都离不开「冗余」和「自动故障转移」,众所周知单点是高可用的大敌,所以组件一般是以集群(至少两台机器)的形式存在的,这样只要某台机器出现问题,集群中的其他机器就可以随时顶替,这就是「冗余」。简单计算一下,假设一台机器的可用性为 90%,则两台机器组成的集群可用性为 1-0.1*0.1 = 99%,所以显然冗余的机器越多,可用性越高。

但光有冗余还不够,如果机器出现问题,需要人工切换的话也是费时费力,而且容易出错,所以我们还需要借助第三方工具(即仲裁者)的力量来实现「自动」的故障转移,以达到实现近实时的故障转移的目的,近实时的故障转移才是高可用的主要意义

[En]

But redundancy is not enough. If there is something wrong with the machine, manual switching is also time-consuming and error-prone, so we also need to use the power of third-party tools (that is, arbitrators) to achieve "automatic" failover. in order to achieve the purpose of near-real-time failover, near-real-time failover is the main meaning of high availability.

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
大数据

Js箭头函数

Js箭头函数 箭头函数是​ ​ES6​​新增的语法,提供了一种更加简洁的函数书写方式,类似于匿名函数,并且简化了函数定义。 完整写法 完整写法类似于匿名函数...
大数据

Rutgers高效AI研讨会(2021)

课程描述 最先进的人工智能模型功能强大;然而,它们也是存储和/或计算密集型的。从不同的衡量标准(例如速度、能量和准确性)和不同的角度(例如算法、编译器、硬件和系统)来提高人工智能的效率非常重要,而且要...
大数据

立创EDA使用笔记

在立创EDA上制作的PCB可以直接导入到嘉立创下单, 每个注册用户每个月可以下两个免费订单, 限制PCB尺寸10CMx10CM, 每单五片, 连制作到快递全部免费, 非常适合做样板. 线路图没什么好说...
大数据

推荐系统-协同过滤在Spark中的实现

作者:vivo 互联网服务器团队-Tang Shutao 现如今推荐无处不在,例如抖音、淘宝、京东App均能见到推荐系统的身影,其背后涉及许多的技术。本文以经典的协同过滤为切入点,重点介绍了被工业界广...
大数据

在字节,A/B 实验是这么做的!

导读: 验证码作为网络安全的第一道屏障,其重要程度不言而喻。当前,卷积神经网络的高速发展使得许多验证码的安全性大大降低,一些新型验证码甚至选择牺牲可用性从而保证安全性。针对对抗样本技术的研究,给验证码...
大数据

springcloud (六) Eureka集群构建以及负载均衡

集群原理 微服务RPC远程服务调用最核心的是什么? 高可用,如果服务注册中心里只有一台机器,如果挂了那就无法访问,所以需要配置多台机器来解决这个问题,一台机器挂了还有另外的机器可以访问。 搭建注册中心...
大数据

利用JAVA API远程进行HDFS的相关操作

学习HDFS有一段时间了,现在把自己总结的HDFS的相关操作代码展示给大家。 主要有HDFS的增删改查,文件的追加,windows本地文件的上传,hdfs文件的下载,文件重命名,创建目录,文件是否存在...