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


Heterogén silók áttekintése

Egy adott fürtön a silók különböző szemcsés típusokat támogatnak:

Heterogeneous silos overview diagram.

Ebben a példában a fürt a következő típusú Aszemcséket támogatja: BCDE

  • Szemcsés típusok A , és B elhelyezhető a Silo 1 és 2.
  • A szemcsetípus C 1, 2 vagy 3 silóra helyezhető.
  • A szemcsetípus D csak a Silo 3-ra helyezhető
  • A szemcsetípus E csak a Silo 4-en helyezhető el.

Minden silónak hivatkoznia kell a fürt összes szemcsés típusának felületére, a szemcsés osztályokra azonban csak az őket üzemeltető silók hivatkozhatnak. Az ügyfél nem tudja, melyik siló támogatja az adott Gabonatípust.

Fontos

Egy adott szemcsetípus implementációjának azonosnak kell lennie minden olyan silón, amely támogatja azt.

A következő forgatókönyv érvénytelen :

A Silo 1 és 2 rendszeren:

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

A Silo 3-on:

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

Konfiguráció

Nincs szükség konfigurációra, a fürt minden silóján különböző bináris fájlokat helyezhet üzembe. Szükség esetén azonban módosíthatja, hogy a silók és az ügyfelek milyen időközönként ellenőrizzek a TypeManagementOptions.TypeMapRefreshInterval tulajdonsággal támogatott típusok változásait.

Tesztelési célokra használhatja a tulajdonságot GrainClassOptions.ExcludedGrainTypes, amely a silókon kizárni kívánt típusok neveinek listája.

Korlátozások

  • Csatlakozás ügyfelek nem kapnak értesítést, ha a támogatott szemcsés típusok halmaza megváltozott. Az előző példában:
    • Ha a Silo 4 elhagyja a fürtöt, az ügyfél továbbra is megpróbál hívásokat kezdeményezni a típushoz E. Futásidőben sikertelen lesz egy OrleansException.
    • Ha az ügyfél még a Silo 4 csatlakoztatása előtt csatlakozott a fürthöz, az ügyfél nem tud hívásokat kezdeményezni a típushoz E. Sikertelen lesz egy ArgumentException.
  • Az állapot nélküli szemcsék nem támogatottak: a fürt összes silójának ugyanazt az állapot nélküli szemcsét kell támogatnia.
  • ImplicitStreamSubscriptionAttributenem támogatottak, ezért csak explicit előfizetések használhatók adatfolyamok Orleans .