Podpora více clusterů

Podpora více clusterů byla odebrána ve verzi 2. Následující dokumentace se týká Orleans verze 1. Orleans V.1.3.0 jsme přidali podporu pro federování několika Orleans clusterů do volně připojeného více clusteru , který funguje jako jedna služba. Multi-clustery usnadňují geografickou distribuci jako službu, což usnadňuje spouštění Orleans aplikace v několika datových centrech po celém světě. Cluster s více clustery je také možné spustit v rámci jednoho datacentra, aby se zlepšila izolace selhání a výkonu.

Všechny mechanismy jsou navrženy se zvláštní pozorností na:

  1. Minimalizujte komunikaci mezi clustery.
  2. Nechte každý cluster běžet samostatně, i když ostatní clustery selžou nebo přestanou být nedostupné.

Konfigurace a operace

Níže uvádíme, jak nakonfigurovat a provozovat cluster s více clustery.

Komunikace. Clustery komunikují přes stejná připojení silo-to-silo, která se používají v rámci clusteru. Ke výměně informací o stavu a konfiguraci používají clustery mechanismus gossip a implementace kanálů gossip.

Konfigurace sila. Sila musí být nakonfigurovaná tak, aby věděla, ke kterému clusteru patří (každý cluster je identifikován jedinečným řetězcem). Každý silo musí být také nakonfigurovaný s připojovací řetězec, které jim umožňují připojit se k jednomu nebo několika kanálům gossip při spuštění.

Injektáž konfigurace s více clustery Za běhu může operátor služby zadat nebo změnit konfiguraci s více clustery, která obsahuje seznam ID clusteru, a určit, které clustery jsou součástí aktuálního více clusteru. To se provádí voláním agregace správy v některém z clusterů.

Zrnka s více shluky

Níže uvádíme, jak používat funkce s více clustery na úrovni aplikace.

Globální zrnka s jednou instancí. Vývojáři můžou určit, kdy a jak mají clustery koordinovat jejich adresáře zrnitosti týkající se konkrétní třídy zrnitosti. To GlobalSingleInstanceAttribute znamená, že chceme stejné chování jako při spuštění Orleans v jednom globálním clusteru: to znamená směrovat všechna volání na jednu aktivaci agregace. Naopak označuje, OneInstancePerClusterAttribute že každý cluster může mít svou nezávislou aktivaci. To je vhodné v případě, že komunikace mezi clustery není žádoucí.

Log-view grain(not in v.1.3.0). Speciální typ agregace, který používá nové rozhraní API, podobně jako event Sourcing, pro synchronizaci nebo zachování stavu agregace. Dá se použít k automatické a efektivní synchronizaci stavu agregace mezi clustery a úložištěm. Vzhledem k tomu, že synchronizační algoritmy jsou bezpečné pro použití s opakovanými zrnky a jsou optimalizované tak, aby používaly dávkování a replikaci, může fungovat lépe než standardní zrnka, pokud je zrno často přístupné v několika clusterech a/nebo když se často zapisuje do úložiště. Podpora zrn zobrazení protokolu zatím není součástí hlavní větve. Máme předběžnou verzi, včetně ukázek a dokumentace ve geo-orleans větvi. V současné době se vyhodnocuje v produkčním prostředí dřívějším adoptérem.