Controllo delle versioni dell'interfaccia grana
In questo articolo si apprenderà come usare il controllo delle versioni dell'interfaccia grana. Il controllo delle versioni dello stato grana non rientra nell'ambito.
Panoramica
In un determinato cluster i silo possono supportare versioni diverse di un tipo di grana.
In questo esempio, il client e silo{1,2,3} sono stati compilati con l'interfaccia granulare A
versione 1. Il silo 4 è stato compilato con A
versione 2.
Limiti
- Nessun controllo delle versioni nel ruolo di lavoro senza stato
- Le interfacce di streaming non sono soggette a controllo delle versioni
Abilitare il controllo delle versioni
Se l'attributo versione non viene aggiunto in modo esplicito all'interfaccia granulare, i grani presentano una versione predefinita di 0. È possibile specificare la grana della versione usando VersionAttribute nell'interfaccia granulare:
[Version(X)]
public interface IVersionUpgradeTestGrain : IGrainWithIntegerKey
{
}
Dove X
è il numero di versione dell'interfaccia granulare, che in genere aumenta in modo monotonico.
Compatibilità e posizionamento delle versioni della grana
Quando in un cluster arriva una chiamata da una grana con controllo delle versioni:
- Se non esiste alcuna attivazione, ne verrà creata una compatibile
- Se esiste un'attivazione:
Per impostazione predefinita:
- Tutti i grani con versione devono essere compatibili solo con le versioni precedenti (vedere linee guida per la compatibilità con le versioni e granicompatibili). Questo significa che una grana v1 può effettuare chiamate a una grana v2, ma una grana v2 non può chiamare una v1.
- Quando nel cluster esistono più versioni, la nuova attivazione sarà posizionata in modo casuale su un silo compatibile.
È possibile modificare questo comportamento predefinito tramite GrainVersioningOptions:
var silo = new HostBuilder()
.UseOrleans(c =>
{
c.Configure<GrainVersioningOptions>(options =>
{
options.DefaultCompatibilityStrategy = nameof(BackwardCompatible);
options.DefaultVersionSelectorStrategy = nameof(MinimumVersion);
});
});
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per