博客:cbb777.fun
全平台账号:安妮的心动录
github: https://github.com/anneheartrecord
下文中我说的可能对,也可能不对,鉴于笔者水平有限,请君自辨。有问题欢迎大家找我讨论~
系统性能三指标
要想理解异地多活,我们需要从架构设计的原则说起 现如今,我们开发一个软件系统,对其要求越来越高,一个好的软件架构应该遵循以下3个原则:
-
高性能 -
高可用 -
易扩展
-
高性能:系统拥有更大流量的处理能力,同时接口返回的速度应该尽可能的快。 -
易扩展:系统在迭代新功能的时候,能够以最小的代价去扩展,系统遇到流量压力的时候,可以在不改动代码的前提下去扩容系统。 -
高可用:通常由两个指标来衡量,分别是平均故障时间和故障恢复时间
不同的软件,不同阶段的公司,产品开发的不同阶段,对这些指标的要求是不一样的:比如一个初创公司,这个时候用户、流量最重要,开发功能,让页面尽可能美观,做产品比其他指标更重要;当流量上来了之后,怎么尽可能缩短响应时间,让系统能处理的QPS更大,就成了至关重要的问题;当产品使用的人数足够多,影响力足够大,可用性的重要就凸现出来了,怎么保证系统尽可能稳定,不出问题,对于公司来说才是最重要的。 系统发生故障是不可避免的,尤其是规模越大的系统,互相之间的调用也更加复杂,对于硬件的要求也越高,从理论上来说发生问题的概率也越大。这些故障一般提现在3个方面:
-
硬件故障:CPU 内存 磁盘 网卡 交换机 路由器 -
软件问题:代码BUG 版本迭代 线上故障等等 -
不可抗力:地震 水灾 火灾 战争