美文网首页
如何优雅的进行服务更新发布

如何优雅的进行服务更新发布

作者: LOC_Thomas | 来源:发表于2019-03-05 17:20 被阅读0次

    微服务更新是一个超级频繁的操作。并且有很多细节需要注意,才能保证服务能够无缝的进行更新和升级。在实际的工作中总结了一些必要的步骤,下面来详细说明一下

    执行命令systemctl stop的时候,会发出143信号,springboot会接受这个信号,触发ContextClosedEvent事件。
    在接受到ContextClosedEvent事件的时候,主程序应该有一段时间的等待时间(一般15秒)。因为eureka-client在接受到这个信号的时候,会告诉eureka需要把实例标记成down状态。需要等待其他客户端更新状态。可以通过修改相关的eureka的配置来缩短更新时间。
    等待一段时间后,其他客户端都进行了更新,然后获得tomcat的线程池,执行shutdown方法,并且设置最长等待时间(一般15秒),如果到达最长时间线程池还没有正常结束,则通过shutdownNow方法,强制结束
    用新的jar包替换更新之前的老jar包
    执行命令systemctl start启动服务
    等待30s后(一般启动时间为30s左右),通过访问/actuator/health来获得该服务的健康状态。
    如果失败则停止后续实例的发布,如果成功则继续发下一个实例。
    根据不同的状态进行相关的责任人的通知。

    相关文章

      网友评论

          本文标题:如何优雅的进行服务更新发布

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