

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 應用程式升級的一般最佳實務和建議
<a name="best-practices-recommendations"></a>
+ 在嘗試生產升級之前，在非生產環境中測試沒有狀態的新任務/執行時間。
+ 考慮先使用非生產應用程式測試有狀態升級。
+ 請確定您的新任務圖表具有與您用來啟動升級應用程式的快照相容的狀態。
  + 請確定存放在運算子狀態中的類型保持不變。如果類型已變更，則 Apache Flink 無法還原運算子狀態。
  + 請確定您使用 `uid`方法設定的運算IDs 保持不變。Apache Flink 強烈建議將唯一 IDs 指派給運算子。如需詳細資訊，請參閱 Apache Flink 文件中的[指派運算子 IDs](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/savepoints/#assigning-operator-ids)。

    如果您未將 IDs指派給運算子，Flink 會自動產生 ID。在這種情況下，它們可能取決於程式結構，如果變更，可能會導致相容性問題。Flink 使用運算子 IDs將快照中的狀態與運算子比對。變更運算子 IDs 會導致應用程式未啟動，或快照中存放的狀態遭到捨棄，而新的運算子在沒有狀態的情況下啟動。
  + 請勿變更用於存放金鑰狀態的金鑰。
  + 請勿修改狀態運算子的輸入類型，例如視窗或聯結。這會隱含地變更運算子的內部狀態類型，導致狀態不相容。