`
yangshen998
  • 浏览: 1248360 次
文章分类
社区版块
存档分类
最新评论

书摘-构建高可用性和可伸缩系统

 
阅读更多

高可用性

对于互联网应用或企业 中得大型应用而言,多数都要求尽可能做到7X24小时不间断的运行,要完全做到不间断的运行,基本上不太可能!

为了实现高可用,要避免系统中出现的单点、保障应用自身的高可用、面对访问量及数据量不断增长带来的挑战!

书中提到构建高可用性的几点:


第一点是从硬件出发,第二点是从自身应用出发!


1、避免出现单点(硬件)

单点现象是指系统部署再单台机器上,一旦这台机器出现问题(硬件损坏、网络不通),系统就不可用。

解决这种单点现象最常见的方法就是将系统部署再多台机器上,每台机器对外提供同样的功能,通常将这种系统环境称为集群!

技术点:

负载均衡

热备

使用多机房


2、提高应用的可用性(软件)

尽可能避免故障 : 【明确使用场景】 【设计可容错的系统】 【设计具备自我保护能力的系统】【限制使用资源】【其他角度】

及时发现故障:【报警系统】【日志记录和系统分析】

访问量和数据量不断上涨的应对策略:【水平伸缩】【拆分】【读写分离】【其他】


可伸缩

所谓的可伸缩无非就是要以一种简单、优雅的方式来应对访问量以及数据量的增长。

作者认为:通常这种简单优雅的方式是指无需改动软件程式,仅通过升级硬件或增加机器即可应对访问量以及数据量增长带来的挑战!理由是,毕竟软件成本的改造相对较大!(能做到就很完美,但是通常都是理想模式)

伸缩分为 :垂直伸缩和水平伸缩,通常通过升级硬件或增加单台机器的硬件来支撑访问量或者数据量增长的方式叫做垂直伸缩,成本很低,适用于小型系统!缺点是硬件是无法不断升级和增加的,很容易瓶颈!不适合大型应用!

通常通过增加机器来支撑访问量及数据量的方式称为水平伸缩,理论上没有瓶颈,但是技术要求很高!



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics