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

如何构建高可用服务

作者: 吴小浙 | 来源:发表于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