Megosztás a következőn keresztül:


Szemcsés felület verziószámozása

Ebből a cikkből megtudhatja, hogyan használhatja a szemcsés felület verziószámozását. A Grain állapot verziószámozása hatókörön kívül esik.

Áttekintés

Egy adott fürtön a silók támogathatják a szemcsés típus különböző verzióit.

Cluster with different versions of a grain

Ebben a példában az ügyfél és a Silo{1,2,3} az 1- es szemcsefelbontási felülettel A lett lefordítva. A Silo 4 a 2-es verzióval A lett lefordítva.

Korlátozások

  • Nincs verziószámozás az állapot nélküli feldolgozón
  • A streamelési felületek nincsenek verziószámban

Verziószámozás engedélyezése

Ha a verzióattribútum nincs explicit módon hozzáadva a szemcsés felülethez, akkor a szemcsék alapértelmezett 0-s verziójúak. A grain verziószámozásához használja a VersionAttribute et a szemcsés felületen:

[Version(X)]
public interface IVersionUpgradeTestGrain : IGrainWithIntegerKey
{
}

Hol X található a szemcsés felület verziószáma, amely általában monoton módon növekszik.

A szemcsés verzió kompatibilitása és elhelyezése

Amikor egy verziószámozott szemcséből érkező hívás érkezik egy fürtbe:

  • Ha nincs aktiválás, létrejön egy kompatibilis aktiválás
  • Ha létezik aktiválás:

Alapértelmezés szerint:

  • Minden verziószámozott szemcsének csak visszamenőlegesen kompatibilisnek kell lennie (lásd a visszamenőleges kompatibilitási irányelveket és a kompatibilis szemcséket). Ez azt jelenti, hogy egy v1-gabona meghívhat egy v2-et, de a v2-gabona nem hívhat meg v1-et.
  • Ha a fürtben több verzió is létezik, az új aktiválás véletlenszerűen egy kompatibilis silóra kerül.

Ezt az alapértelmezett viselkedést a következő módon módosíthatja GrainVersioningOptions:

var silo = new HostBuilder()
    .UseOrleans(c =>
    {
        c.Configure<GrainVersioningOptions>(options =>
        {
            options.DefaultCompatibilityStrategy = nameof(BackwardCompatible);
            options.DefaultVersionSelectorStrategy = nameof(MinimumVersion);
        });
    });