云服务器内容精选

  • 应用场景 整个web系统发展经历了单体应用、分布式/微服务化、跨AZ高可用等几个阶段,这些阶段都会不可避免地触及到单点瓶颈。这里所说的“单点”,在系统的不同发展阶段表现不同。 单体应用:运行在虚拟机、物理机或者大规格虚拟机上。系统可靠性,一般小于99%,容量和性能依赖于单个虚拟机/物理机性能。 分布式/微服务化:一个单体应用划分为多个微服务,运行在虚拟机or容器基础之上。系统的可靠性依赖于AZ可靠性,一般小于99.9%。系统容量:可线性扩展,但受限于中间件能力。 跨AZ高可用:系统的特点是应用部署在Region内多AZ分布,可靠性依赖单Region可靠性,一般小于99.95%。系统容量:可线性扩展。 为了解决以上这些单点问题,多地多机房部署,是互联网系统的必然发展方向,一个系统要走到这一步,也就必然要解决上面提到的问题:流量调配、数据拆分、延时等。业界有很多技术方案可以用来解决这些问题,而承载这些方案的,是一个部署架构。尽管可采用的部署架构不止一个,但不论是纯理论研究,还是一些先行系统的架构实践,都把“单元化部署”推崇为最佳方案。 单元化架构,是异地多活的一种最佳实践,是从并行计算领域发展而来。在分布式服务设计领域,一个单元就是满足某个分区所有业务操作的自包含的安装。而一个分区(Shard),则是整体数据集的一个子集,如果你用尾号来划分用户,那同样尾号的那部分用户就可以认为是一个分区。单元化就是将一个服务设计改造,让其符合单元特征的过程,从而,将可靠性规格分解分配到可替换单元,当单元故障时,采用替换的方式快速恢复服务,秒级检测自愈,分钟级恢复,抗百倍过载等可靠性目标。