-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
77 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
--- | ||
title: 稳定性-介绍 | ||
description: 稳定性的重要性 | ||
meta: | ||
- name: 系统稳定性, 可靠服务, 可用性 | ||
content: 系统稳定性指系统在面对业务数据量增长或者各种意外事件时,仍能持续提供可靠服务的能力 | ||
--- | ||
## 稳定性-介绍 | ||
### 稳定性的重要性 | ||
|
||
系统稳定性指系统在面对业务数据量增长或者各种意外事件时,仍能持续提供可靠服务的能力。这种能力对于企业、客户都是非常重要的,其价值主要体现在以下7个方面[1]: | ||
|
||
* **用户满意度:**稳定的系统能够提供更好的用户体验,减少服务中断、加载延迟或崩溃等问题,提高用户满意度。 | ||
* **业务连续性:**如果系统频繁崩溃或不可用,业务操作将受影响,导致业务中断,损失收入和客户。系统稳定性能够保证业务的连续性。 | ||
* **数据保护:**系统不稳定可能导致数据丢失或泄漏,对业务造成严重损害。稳定的系统能够有效保护数据的完整性、可用性和保密性。 | ||
* **企业声誉:**稳定的系统代表着专业和可信赖的形象。企业在客户和合作伙伴中建立良好的声誉,有助于增强市场竞争力。 | ||
* **效率和生产力:**稳定的系统意味着员工能够无缝地执行任务,不必花费时间应对系统故障。高稳定性的系统,能够提高工作效率和生产力,减少工作中断。 | ||
* **成本控制:**不稳定的系统可能需要投入大量的人力、时间和资源,稳定的系统减少了资源投入,降低了企业的维护成本。 | ||
* **业务增长:**稳定的系统为业务增长创造了条件。企业可以专注于业务拓展,而不必过多担心系统稳定性问题。 | ||
因此保障系统的稳定性,是我们最重要的工作。 | ||
|
||
### 怎么定义稳定性 | ||
|
||
要想保障服务的稳定性,我们需要一种统计方式定义系统是否稳定。目前业界有两种衡量系统可用性的方式,一个是时间维度,一个是请求维度,我们先来看这两个维度的计算公式[2]。 | ||
|
||
* 时间维度 :**Availability = Uptime / (Uptime + Downtime)** | ||
* 请求维度: **Availability = Successful request / Total request** | ||
这两个维度计算公式运用在实际业务中,可以变为以下的描述 | ||
|
||
* 时间维度:服务可用性 =(1 - 服务月度不可用时间(分钟数) / 服务月度总时间(分钟数))x 100% | ||
* 请求维度:服务可用性 =(当天总请求数 - 当天 5xx 请求数 / 当天总请求数)x 100% | ||
我们可以根据以上的计算方式,计算出我们系统可用性的对照表 | ||
|
||
|系统可用性|故障时间/年|故障时间/天| | ||
|:----|:----|:----| | ||
|90%|36.5天|2.4小时| | ||
|99%|3.65天|14.4分| | ||
|99.9%|8.76小时|1.44分| | ||
|99.99%|52.56分钟|8.66秒| | ||
|99.999%|5.26分钟|0.87秒| | ||
|
||
### 如何保障稳定性 | ||
后面我们会根据不同维度讲解稳定性 | ||
* 代码设计 | ||
* 报文大小 | ||
* 缓存 | ||
* 超时 | ||
* 重试 | ||
* 部署架构 | ||
* k8s | ||
* 服务发现 | ||
* 优雅关闭 | ||
* 动态扩容 | ||
* 中间件 | ||
* 运行观测 | ||
* 隔离 | ||
* 连接池 | ||
* Time Wait | ||
* Prometheus | ||
* 5XX | ||
* Error | ||
* 巡查系统 | ||
* 5xx | ||
* 故障恢复 | ||
|
||
### 引用 | ||
* [1] [什么是系统稳定性](https://www.amazonaws.cn/knowledge/what-is-system-stability/) | ||
* [2] [稳定性系列文章1-如何评价系统稳定性?](https://segmentfault.com/a/1190000040994489) | ||
|