zoukankan      html  css  js  c++  java
  • 从单体到分布式,如何做到无损发布?

     由于我们的系统是7*24小时不间断为用户提供服务的,如果直接发布那些正在访问的用户就会访问失败,给用户带来不好的使用体验,也会给公司带来经济损失,所以我们一般会选择在凌晨用户少的时候去发布。

    为了发布不要影响到用户访问,为了不再在凌晨三点熬夜发布版本,无损发布就显得非常重要了。

    那么能做到无损发布吗?答案是肯定的,需要nginx和web server配合完成,请看下面的流程图。

    无损发布流程

    1,初始状态

    有两个web server节点组成的集群。

     2,下线web-server1

    给nginx发送指令(动态修改upstream,下面会讲到),下线web-server1。

     3,部署和验证web-server1

    web-server1下线之后,就可以开始部署和验证了,发布完成之后,可以直连到这个节点进行验证。

    4,上线web-server1

    验证没有问题之后,就可以上线了。

    5,按以上步骤依次发布其它节点

     远程管理

    那么,可能会有读者会问怎么给nginx发送指令呢?我们可以借助nginx的第三方扩展模块:ngx_http_dyups_module

    因为ngx_http_dyups_module提供了restful的接口,所以我们基于此开发一个管理控制台,做到远程管理,类似于下面这样。

    欢迎大家扫描下方二维码获取我的最新原创文章:

      

  • 相关阅读:
    服务器搭建Git
    BGP协议详解
    以太坊
    燃 * & *
    UML类图解析
    day8.文件操作
    python面试题汇总
    day5.字典
    day5.类型汇总
    day3,4总结程序
  • 原文地址:https://www.cnblogs.com/mcgrady/p/12841315.html
Copyright © 2011-2022 走看看