這是一個不兼容的變更。怎樣才能減少停機時間?讓我們來看看解決方案:
1.我們始于數據庫遷移:生成兩個新字段,然后將舊的名字用空格分成兩部分,填充到這兩個新字段中。|日的名字只是項目初始的選擇,現在并不是非常適合,這是我們想要改變的原因。
這個變更到現在為止還是向下兼容的,因為我們并沒有移除名字字段,我們只是新建了兩個還沒有用到的新字段罷了。
2.接下來,我們修改負載均衡的配置,從而使外界不能訪問我們的第二個服務器。第一個服務器依舊當仁不讓,因為1日的服務器代碼仍然可以訪問I曰的名字字段。
3.現在第二個服務器沒有負載了,我們可以隨意升級。
升級完成以后,我們啟動它。因為使用了兩個新字段,它也工作得很好。
4.此時,我們可以再次切換負載均衡的配置,使第一個服務器變得不可用,而由第二個服務器提供服務。當第一個服務器斷線的時候,我們也可以照樣升級它。再次啟動它以后,通過恢復負載均衡的配置讓兩個服務器都可以被訪問。
現在,這個變更就差不多完成了。剩下的唯一事情就是移除舊的名字字段,因為沒有代碼會再去使用它。
就像我們所看到的,為了正常工作,滾動升級需要預先的大量工作。如果你的企業本來就有停機計劃,在停機期間升級要容易得多。國際企業可能并沒有合適的時間窗口來處理升級,滾動升級可能是唯一的選擇。