美文网首页
如何构建高可用服务

如何构建高可用服务

作者: 吴小浙 | 来源:发表于2019-12-10 19:06 被阅读0次

背景

一个web 系统的主要能力大部分情况由服务端提供,保障服务的高可用性是重要的架构环节。本文旨在说明高可用服务的使用场景、设计重点以及实践方式

使用场景

高可用指的是系统具备高度的可用性,尽量减少停工实践

停工原因:

  1. 服务器故障。如服务器宕机、机房网络问题等
  2. 访问量突增,导致服务器压力过大。
    1. 时间和访问量可以预见,如秒杀、售票等
    2. 时间和访问量不可以预计,如突发性社会事件

高可用性应关注,即使灾难发生,系统依然可以使用。

设计重点

  1. 面对机房故障。可以考虑在多台机器上部署服务
    1. 主从方式。主服务提供服务,从服务检测主服务,一旦发生问题,切到从服务
    2. 多机多工方式。部署到多台机器上,通过负载均衡,发现某一台机器故障,自动切换到其他服务
  2. 业务层面。
    1. 大系统小做。细粒度化服务,某业务发生问题,也不会影响其他业务。但是开发成本上升。
    2. 有损服务。延迟服务,保证核心服务正常。如微信抢红包,用户更关心是否抢到了,但是否已入账就不是那么关键,可以放到异步队列中处理
    3. 柔性可用。在正常服务与停工之间增加状态:部分可用。如果压力上来,可以将不必要的服务关闭
    4. 快速拒绝。当负载过高时可以直接返回服务繁忙。客户端面对重试应提供必要重试措施,或者没有收到服务器请求之前应不再发起请求。也可以在 nginx 层直接拒绝,同一 ip 发起多起请求。

相关文章

网友评论

      本文标题:如何构建高可用服务

      本文链接:https://www.haomeiwen.com/subject/uwoggctx.html