精細度介面版本設定
在本文中,您將會了解如何使用精細度介面版本設定。 精細度狀態的版本設定不在範圍內。
概觀
在指定的叢集上,定址接收器可以支援不同版本的精細度型別。
在此範例中,用戶端和定址接收器 {1,2,3} 是使用精細度介面 A
第 1 版進行編譯。 定址接收器 4 已使用 A
第 2 版進行編譯。
限制
- 無狀態背景工作角色上沒有版本控制
- 串流介面未設定版本
啟用版本設定
如果未將版本屬性明確新增至精細度介面,則精細度的預設版本為 0。 您可以在精細度介面上使用 VersionAttribute 來設定版本精細度:
[Version(X)]
public interface IVersionUpgradeTestGrain : IGrainWithIntegerKey
{
}
其中 X
是精細度介面的版本號碼,通常是單純增加。
精細度版本相容性和位置
來自已設定版本精細度的呼叫抵達叢集時:
預設情況:
- 所有已設定版本的精細度都應該只回溯相容 (請參閱回溯相容性指導方針和相容的精細度)。 這表示 v1 精細度可以呼叫 v2 精細度,但是 v2 精細度無法呼叫 v1。
- 當叢集中有多個版本存在時,新的啟用將會隨機放在相容的定址接收器上。
您可以透過 GrainVersioningOptions 變更此預設行為:
var silo = new HostBuilder()
.UseOrleans(c =>
{
c.Configure<GrainVersioningOptions>(options =>
{
options.DefaultCompatibilityStrategy = nameof(BackwardCompatible);
options.DefaultVersionSelectorStrategy = nameof(MinimumVersion);
});
});
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應