美文网首页
无损发布(web服务)

无损发布(web服务)

作者: 赫灵 | 来源:发表于2018-12-17 20:48 被阅读0次

    1、何为无损发布?

    无损发布就是在应用进行发布升级的时候,不会影响到正在使用系统的用户,比如用户正在进行资料更新,如果这个时候进行升级,系统升级往往需要重启,重启会导致用户的资料更新失败。如何做到升级不影响用户的使用,就是今天我们讨论的无损发布。不会因为系统重启导致系统数据的丢失。

    2、如何做到无损发布?

    2.1、首先我们来看看web应用的无损发布,也即Nginx+Tomcat的架构模式,如下图:

    2.2、无损发布的基本思路:

    2.2.1、首先Nginx 动态修改 upstream,请求不再路由到Tomcat1

    2.2.2、等待Tomcat1上面的请求处理完毕

    2.2.3、对Tomcat1进行升级

    2.2.4、检查Tomcat1是否升级成功

    2.2.5、再修改Nginx 的upstream,把请求路由到Tomcat1上面

    2.2.6、循环上面的步骤,直到所有的Tomcat都升级完毕

    2.3、需要解决的技术问题:

    2.3.1、Nginx 动态修改 upstream:

    2.3.1.1、ngx_http_dyups_module模块能动态修改upstream

    或者

    2.3.1.2、通过lua动态更改upstream

    (修改之后,路由到被踢掉的Tomcat上面的请求是否还能继续处理,待验证?)

    2.3.2、识别Tomcat上面的请求处理完毕(只有等到Tomcat上面的请求处理完毕以后,才能对Tomcat进行进行重启,这样才能做到无损发布,否则还是会有部分请求会失败):

    2.3.2.1、通过监控Tomcat的处理请求的线程的状态,来判断现在是否还有请求没有处理完毕

    相关文章

      网友评论

          本文标题:无损发布(web服务)

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