如何優(yōu)雅的進行服務更新發(fā)布

微服務更新是一個超級頻繁的操作。并且有很多細節(jié)需要注意,才能保證服務能夠無縫的進行更新和升級。在實際的工作中總結了一些必要的步驟,下面來詳細說明一下

執(zhí)行命令systemctl stop的時候,會發(fā)出143信號,springboot會接受這個信號,觸發(fā)ContextClosedEvent事件。
在接受到ContextClosedEvent事件的時候,主程序應該有一段時間的等待時間(一般15秒)。因為eureka-client在接受到這個信號的時候,會告訴eureka需要把實例標記成down狀態(tài)。需要等待其他客戶端更新狀態(tài)??梢酝ㄟ^修改相關的eureka的配置來縮短更新時間。
等待一段時間后,其他客戶端都進行了更新,然后獲得tomcat的線程池,執(zhí)行shutdown方法,并且設置最長等待時間(一般15秒),如果到達最長時間線程池還沒有正常結束,則通過shutdownNow方法,強制結束
用新的jar包替換更新之前的老jar包
執(zhí)行命令systemctl start啟動服務
等待30s后(一般啟動時間為30s左右),通過訪問/actuator/health來獲得該服務的健康狀態(tài)。
如果失敗則停止后續(xù)實例的發(fā)布,如果成功則繼續(xù)發(fā)下一個實例。
根據不同的狀態(tài)進行相關的責任人的通知。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容