Sdílet prostřednictvím


Přehled heterogenních sila

V daném clusteru mohou sila podporovat jinou sadu typů zrn:

Heterogeneous silos overview diagram.

V tomto příkladu cluster podporuje zrnka typu A, B, C, D: E

  • Typy A zrnitosti a B lze je umístit na Silo 1 a 2.
  • Typ C zrnitosti lze umístit na Silo 1, 2 nebo 3.
  • Typ D zrnitosti lze umístit pouze na Silo 3.
  • Typ E zrnitosti lze umístit pouze na Silo 4.

Všechna sila by měla odkazovat na rozhraní všech typů zrn v clusteru, ale třídy grain by měly být odkazovány pouze silami, které je budou hostovat. Klient neví, který silo podporuje daný typ zrnitosti.

Důležité

Daná implementace typu zrnitosti musí být stejná na každém silu, který ho podporuje.

Následující scénář není platný:

Na silu 1 a 2:

public class C: Grain, IMyGrainInterface
{
   public Task SomeMethod() { /* ... */ }
}

Na silu 3:

public class C: Grain, IMyGrainInterface, IMyOtherGrainInterface
{
   public Task SomeMethod() { /* ... */ }
   public Task SomeOtherMethod() { /* ... */ }
}

Konfigurace

Není potřeba žádná konfigurace, můžete do každého sila v clusteru nasadit různé binární soubory. V případě potřeby však můžete změnit interval, kdy sila a klienti kontrolují změny v typech podporovaných vlastností TypeManagementOptions.TypeMapRefreshInterval .

Pro účely testování můžete použít vlastnost GrainClassOptions.ExcludedGrainTypes, což je seznam názvů typů, které chcete vyloučit na sila.

Omezení

  • Připojení klienti nebudou upozorněni, pokud se změnila sada podporovaných typů agregace. V předchozím příkladu:
    • Pokud Silo 4 opustí cluster, klient se stále pokusí provést volání podrobného typu E. Při běhu selže s chybou OrleansException.
    • Pokud byl klient připojen ke clusteru před připojením Silo 4, klient nebude moct volat zrnko typu E. Selže s chybou ArgumentException.
  • Bezstavová zrna nejsou podporována: všechna sila v clusteru musí podporovat stejnou sadu bezstavových zrn.
  • ImplicitStreamSubscriptionAttributenejsou podporovány, a proto je možné v Orleans Toky použít pouze explicitní předplatná.