相容的粒紋
當現有的粒紋啟用即將處理要求時,執行階段會檢查要求中的版本,以及實際的粒紋版本是否相容。 Orleans 不會在執行階段推斷要使用的原則。 判斷兩個版本是否相容的預設行為是由 Orleans.Versions.Compatibility.CompatibilityStrategy 所決定。
回溯相容 (預設)
定義
在下列情況下,粒紋介面版本 Vn 可能會與 Vm 回溯相容:
- 介面的名稱不會變更 (或覆寫的 typecode)。
- Vm 版本中的所有公用方法皆在 Vn 版本中。 請務必不要修改繼承自 Vm 方法的簽章:因為 Orleans 使用內部內建序列化程式,修改/重新命名欄位 (甚至是私用) 都可能使序列化中斷。
由於 Vn 可將新增的方法與 Vm 比較,因此 Vm 與 Vn 不相容。
範例
如果我們在叢集中有兩個版本的指定介面 (V1 和 V2),且該 V2 與 V1 回溯相容:
- 如果目前的啟用為 V2 而要求的版本為 V1,則目前的啟用將能夠正常處理要求
- 如果目前的啟用為 V1 而要求的版本為 V2,則會停用目前的啟用,並建立與 V2 相容的新啟用 (請參閱版本選取器策略)。
完全相容
定義
在下列情況下,粒紋介面版本 Vn 可能會與 Vm 完全相容:
- Vn 與 Vm 是回溯相容
- Vn 版本中未新增任何公用方法
如果 Vn 與 Vm 完全相容,則 Vm 也會與 Vn 完全相容。
範例
如果我們在叢集中有兩個版本的指定介面 (V1 和 V2),且該 V2 與 V1 完全相容:
- 如果目前的啟用為 V2 而要求的版本為 V1,則目前的啟用將能夠正常處理要求
- 如果目前的啟用為 V1 而要求的版本為 V2,則目前的啟用也將能夠正常處理要求
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應