从单体到分布式,如何做到无损发布?

Posted mcgrady

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从单体到分布式,如何做到无损发布?相关的知识,希望对你有一定的参考价值。

 由于我们的系统是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的接口,所以我们基于此开发一个管理控制台,做到远程管理,类似于下面这样。

技术图片

 

 

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

技术图片

 

  

以上是关于从单体到分布式,如何做到无损发布?的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构的陷阱:从单体到分布式单体

避免从单体到分布式单体

想从单体架构演进到分布式架构,SBA 会是一个不错的选择

想从单体架构演进到分布式架构,SBA 会是一个不错的选择

从单体事务到分布式事务

从单体架构到分布式架构万丈高楼平地起:环境准备