高可用笔记

学习博客地址:https://www.cnblogs.com/shizhiyi/p/7750530.html

 

一、什么是高可用

高可用是分布式系统架构设计中必须考虑的因素之一,它是指通过设计减少系统不能提供服务的时间。很多公司的高可用目标是4个9,即99.99%的时间系统可用,年停机时间为8.76小时。

 

二、如何保障系统高可用

单点是高可用最大的敌人,集群+自动故障转移来保证系统的高可用性。

 

三、常见的互联网分层架构高可用实践

 

 

【客户端层->反向代理层】

常见的实践是keepalived存活探测,相同virtual IP提供服务。

故障自动转移

 

【反向代理层->站点层】

nginx.conf里能够配置多个web后端,并且nginx能够探测到多个后端的存活性。

 

【站点层->服务层】的高可用

自动故障转移:当service挂了的时候,service-connection-pool能够探测到,会自动的进行故障转移(个人感觉是不是注册中心的工作)

 

【服务层>缓存层】

缓存层也可以通过支持主从同步的缓存集群来解决缓存层的高可用问题。

自动故障转移:当redis主挂了的时候,sentinel能够探测到,会通知调用方访问新的redis,整个过程由sentinel和redis集群配合完成,对调用方是透明的。

【服务层>数据库层】

【服务层>数据库层“读”】

自动故障转移:当读库挂了的时候,db-connection-pool能够探测到,会自动的进行故障转移,将流量自动迁移到其他的读库,整个过程由连接池自动完成,对调用方是透明的(所以说DAO中的数据库连接池是很重要的基础组件)。

 

【服务层>数据库层“写”】

以mysql为例,可以设置两个mysql双主同步,一台对线上提供服务,另一台冗余以保证高可用,常见的实践是keepalived存活探测,相同virtual IP提供服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值