Obsługa wielu klastrów

Obsługa wielu klastrów została usunięta w wersji 2. Poniższa dokumentacja dotyczy wersji Orleans 1. Orleans W wersji 1.3.0 dodano obsługę sfederowania kilku Orleans klastrów do luźno połączonego wieloklasowego klastra , który działa jako pojedyncza usługa. Wiele klastrów ułatwia dystrybucję geograficzną jako usługę Orleans , czyli ułatwia uruchamianie aplikacji w wielu centrach danych na całym świecie. Ponadto w jednym centrum danych można uruchomić wiele klastrów, aby uzyskać lepszą izolację wydajności i awarii.

Wszystkie mechanizmy zostały zaprojektowane ze szczególnym uwzględnieniem:

  1. Zminimalizuj komunikację między klastrami.
  2. Pozwól, aby każdy klaster działał autonomicznie, nawet jeśli inne klastry kończą się niepowodzeniem lub stają się niedostępne.

Konfiguracja i operacja

Poniżej przedstawiono sposób konfigurowania i obsługi wielu klastrów.

Komunikacja. Klastry komunikują się za pośrednictwem tych samych połączeń silosu do silosu, które są używane w klastrze. Aby wymienić informacje o stanie i konfiguracji, klastry używają mechanizmu plotek i implementacji kanału plotek.

Konfiguracja silosu. Silosy muszą być skonfigurowane, aby wiedzieć, do którego klastra należą (każdy klaster jest identyfikowany przez unikatowy ciąg). Ponadto każdy silos musi być skonfigurowany przy użyciu parametry połączenia, które umożliwiają im łączenie się z co najmniej jednym kanałem plotek podczas uruchamiania.

Iniekcja konfiguracji wielu klastrów. W czasie wykonywania operator usługi może określić i/lub zmienić konfigurację wielu klastrów, która zawiera listę identyfikatorów klastra, aby określić, które klastry są częścią bieżącego klastra wieloklasowego. Odbywa się to przez wywołanie ziarna zarządzania w jednym z klastrów.

Ziarna wielu klastrów

Poniżej opisano sposób używania funkcji wieloklasowych na poziomie aplikacji.

Ziarna globalne pojedynczego wystąpienia. Deweloperzy mogą wskazać, kiedy i jak klastry powinny koordynować katalogi ziarna dotyczące określonej klasy ziarna. Oznacza GlobalSingleInstanceAttribute to, że chcemy tego samego zachowania, co podczas uruchamiania Orleans w jednym klastrze globalnym: oznacza to kierowanie wszystkich wywołań do pojedynczej aktywacji ziarna. Z drugiej strony wskazuje, OneInstancePerClusterAttribute że każdy klaster może mieć niezależną aktywację. Jest to odpowiednie w przypadku niepożądanej komunikacji między klastrami.

Ziarna widoku dziennika (nie w wersji 1.3.0). Specjalny typ ziarna, który używa nowego interfejsu API, podobnego do określania źródła zdarzeń, do synchronizowania lub utrwalania stanu ziarna. Może służyć do automatycznego i wydajnego synchronizowania stanu ziarna między klastrami a magazynem. Ponieważ jego algorytmy synchronizacji są bezpieczne do użycia z ziarnami ponownego stosowania i są zoptymalizowane pod kątem przetwarzania wsadowego i replikacji, może działać lepiej niż standardowe ziarna, gdy ziarno jest często używane w wielu klastrach i/lub gdy jest zapisywane w magazynie często. Obsługa ziarna widoku dziennika nie jest jeszcze częścią gałęzi głównej. Mamy wersję wstępną, w tym przykłady i trochę dokumentacji w geo-orleans gałęzi . Obecnie jest ona oceniana w środowisku produkcyjnym przez wczesnego adoptera.