Szkolenie
Moduł
Wprowadzenie do Orleanu - Training
Dowiedz się, czym jest struktura Orleanu, jakie korzyści może zapewnić i jak zintegrować ją z aplikacjami.
Ta przeglądarka nie jest już obsługiwana.
Przejdź na przeglądarkę Microsoft Edge, aby korzystać z najnowszych funkcji, aktualizacji zabezpieczeń i pomocy technicznej.
Orleans:
Orleans jest oparty na modelu "aktora". Model aktora pochodzi na początku lat 70.Orleans Model aktora to model programowania, w którym każdy aktor jest lekkim, współbieżnym, niezmiennym obiektem, który hermetyzuje fragment stanu i odpowiednie zachowanie. Aktorzy komunikują się wyłącznie ze sobą przy użyciu komunikatów asynchronicznych. Orleans wymyślił abstrakcję wirtualnego aktora , gdzie aktorzy istnieją wiecznie.
Uwaga
Aktorzy są czysto logicznymi jednostkami, które zawsze istnieją, praktycznie. Nie można jawnie utworzyć ani zniszczyć aktora, a jego istnienie wirtualne nie ma wpływu na awarię serwera, który go wykonuje. Ponieważ aktorzy zawsze istnieją, są zawsze adresowalne.
Jest to nowatorskie podejście do tworzenia nowej generacji aplikacji rozproszonych na potrzeby epoki chmury. Model Orleans programowania osłania złożoność związaną z wysoce równoległymi aplikacjami rozproszonymi bez ograniczania możliwości ani nakładania ograniczeń na dewelopera.
Aby uzyskać więcej informacji, zobacz Orleans: Virtual Actors via Microsoft Research (Wirtualne aktorzy za pośrednictwem usługi Microsoft Research). Wirtualny aktor jest reprezentowany jako Orleans ziarno.
Ziarno jest jednym z kilku Orleans pierwotnych. Jeśli chodzi o model aktora, ziarno jest aktorem wirtualnym. Podstawowym blokiem konstrukcyjnym w każdej Orleans aplikacji jest ziarno. Ziarna to jednostki składające się z tożsamości, zachowania i stanu zdefiniowanego przez użytkownika. Rozważ następującą wizualną reprezentację ziarna:
Tożsamości ziarna to klucze zdefiniowane przez użytkownika, dzięki czemu ziarna są zawsze dostępne do wywołania. Ziarna mogą być wywoływane przez inne ziarna lub dowolną liczbę klientów zewnętrznych. Każde ziarno jest wystąpieniem klasy, która implementuje jeden lub więcej z następujących interfejsów:
Guid
.Int64
.string
.Ziarna mogą mieć nietrwałe lub trwałe dane stanu, które mogą być przechowywane w dowolnym systemie magazynu. W związku z tym ziarna niejawnie partycjonuje stany aplikacji, umożliwiając automatyczną skalowalność i upraszczając odzyskiwanie po awariach. Stan ziarna jest przechowywany w pamięci, gdy ziarno jest aktywne, co prowadzi do mniejszego opóźnienia i mniejszego obciążenia magazynów danych.
Tworzenie wystąpienia ziarna jest wykonywane automatycznie na żądanie przez Orleans środowisko uruchomieniowe. Ziarna, które nie są używane przez jakiś czas, są automatycznie usuwane z pamięci, aby zwolnić zasoby. Jest to możliwe ze względu na ich stabilną tożsamość, która umożliwia wywoływanie ziarna, niezależnie od tego, czy są już załadowane do pamięci, czy nie. Umożliwia to również przezroczyste odzyskiwanie po awarii, ponieważ obiekt wywołujący nie musi wiedzieć, na którym serwerze ziarno jest tworzone w dowolnym momencie. Ziarna mają zarządzany cykl życia, ze środowiskiem uruchomieniowym odpowiedzialnym za aktywowanie/dezaktywowanie i umieszczanie/lokalizowanie ziarna zgodnie z Orleans potrzebami. Dzięki temu deweloper może napisać kod tak, jakby wszystkie ziarna zawsze znajdowały się w pamięci.
Silos to kolejny przykład pierwotnego Orleans elementu. Silos hostuje co najmniej jedno ziarno. Środowisko Orleans uruchomieniowe implementuje model programowania dla aplikacji.
Zazwyczaj grupa silosów działa jako klaster w celu zapewnienia skalowalności i odporności na uszkodzenia. W przypadku uruchamiania jako klastra silosy koordynują się ze sobą w celu dystrybucji pracy i wykrywania i odzyskiwania po awariach. Środowisko uruchomieniowe umożliwia ziarnom hostowanym w klastrze komunikowanie się ze sobą tak, jakby były w ramach jednego procesu. Aby ułatwić wizualizowanie relacji między klastrami, silosami i ziarnami, rozważmy następujący diagram:
Na powyższym diagramie przedstawiono relację między klastrami, silosami i ziarnami. Można mieć dowolną liczbę klastrów, każdy klaster ma co najmniej jeden silos, a każdy silos ma co najmniej jedno ziarno.
Oprócz podstawowego modelu programowania silosy udostępniają zestaw usług środowiska uruchomieniowego, takich jak czasomierze, przypomnienia (trwałe czasomierze), trwałość, transakcje, strumienie i inne. Aby uzyskać więcej informacji, zobacz Co mogę zrobić z Orleans?
Aplikacje internetowe i inni klienci zewnętrzni nazywają ziarna w klastrze przy użyciu biblioteki klienta, która automatycznie zarządza komunikacją sieciową. Klienci mogą być również współgospodarzeni w tym samym procesie z silosami dla uproszczenia.
Orleans to struktura do tworzenia aplikacji natywnych dla chmury i powinna być brana pod uwagę za każdym razem, gdy tworzysz aplikacje platformy .NET, które ostatecznie będą musiały zostać skalowane. Pozornie niekończące się sposoby korzystania z programu Orleans, ale poniżej przedstawiono niektóre z najbardziej typowych sposobów; Gry, Bankowość, Aplikacje do czatów, Śledzenie GPS, Handel giełdowy, Koszyki na zakupy, Aplikacje do głosowania i nie tylko. Orleans jest używany przez firmę Microsoft na platformie Azure, Xbox, Skype, Halo, PlayFab, Gears of War i wiele innych usług wewnętrznych. Orleans Ma wiele funkcji, które ułatwiają korzystanie z różnych aplikacji.
Orleans Zapewnia prosty model trwałości, który gwarantuje, że stan jest dostępny przed przetworzeniem żądania i że jego spójność jest utrzymywana. Ziarna mogą mieć wiele nazwanych trwałych obiektów danych. Na przykład może istnieć jeden o nazwie "profil" dla profilu użytkownika i jeden o nazwie "inventory" dla swojego spisu. Ten stan można przechowywać w dowolnym systemie magazynu.
Gdy ziarno jest uruchomione, stan jest przechowywany w pamięci, dzięki czemu żądania odczytu mogą być obsługiwane bez uzyskiwania dostępu do magazynu. Gdy ziarno aktualizuje jego stan, wywołanie IStorage.WriteStateAsync gwarantuje, że magazyn zapasowy jest aktualizowany pod kątem trwałości i spójności.
Aby uzyskać więcej informacji, zobacz Trwałość ziarna.
Przypomnienia to trwały mechanizm planowania dla ziarna. Można ich użyć, aby upewnić się, że niektóre działania są wykonywane w przyszłości, nawet jeśli ziarno nie jest obecnie aktywowane w tym czasie. Czasomierze są nietrwałym odpowiednikiem przypomnień i mogą być używane w przypadku zdarzeń o wysokiej częstotliwości, które nie wymagają niezawodności.
Aby uzyskać więcej informacji, zobacz Czasomierze i przypomnienia.
Gdy ziarno jest aktywowane w Orleansprogramie , środowisko uruchomieniowe decyduje, na którym serwerze (silosie) aktywowano to ziarno. Jest to nazywane umieszczaniem ziarna.
Proces umieszczania w programie Orleans jest w pełni konfigurowalny. Deweloperzy mogą wybierać spośród wbudowanych zasad umieszczania, takich jak losowe, preferowane lokalnie i oparte na obciążeniu lub niestandardowa logika. Dzięki temu można w pełni elastycznie decydować, gdzie tworzone są ziarna. Na przykład ziarna można umieścić na serwerze w pobliżu zasobów, które muszą działać względem lub innych ziarna, z którymi komunikują się.
Aby uzyskać więcej informacji, zobacz Umieszczanie ziarna.
Uaktualnianie systemów produkcyjnych w sposób bezpieczny dla zmian może być trudne, szczególnie w systemach stanowych. Aby to uwzględnić, interfejsy ziarna w Orleans programie mogą być wersjonowane.
Klaster obsługuje mapowanie implementacji ziarna, na których są dostępne silosy w klastrze i wersje tych implementacji. Ta wersja informacji jest używana przez środowisko uruchomieniowe w połączeniu ze strategiami umieszczania w celu podejmowania decyzji dotyczących umieszczania podczas kierowania wywołań do ziarna. Ponadto, aby bezpiecznie zaktualizować ziarno wersji, umożliwia to również heterogeniczne klastry, w których różne silosy mają różne zestawy implementacji ziarna dostępne.
Aby uzyskać więcej informacji, zobacz Grain Versioning (Przechowywanie wersji ziarna).
Pracownicy bezstanowi są specjalnie oznaczonymi ziarnami, które nie mają żadnego skojarzonego stanu i mogą być aktywowane na wielu silosach jednocześnie. Umożliwia to zwiększenie równoległości dla funkcji bezstanowych.
Aby uzyskać więcej informacji, zobacz bezstanowe ziarna procesów roboczych.
Filtr wywołań ziarna jest logiką wspólną dla wielu ziarna. Orleans obsługuje filtry zarówno dla połączeń przychodzących, jak i wychodzących. Filtry autoryzacji, rejestrowania i telemetrii oraz obsługi błędów są uznawane za typowe.
Metadane i inne informacje mogą być przekazywane z serią żądań przy użyciu kontekstu żądania. Kontekst żądania może służyć do przechowywania informacji dotyczących śledzenia rozproszonego lub innych wartości zdefiniowanych przez użytkownika.
Oprócz prostego modelu trwałości opisanego powyżej ziarna mogą mieć stan transakcyjny. Wiele ziarna może uczestniczyć w transakcjach ACID razem, niezależnie od tego, gdzie ich stan jest ostatecznie przechowywany. Transakcje w programie Orleans są dystrybuowane i zdecentralizowane (nie ma centralnego menedżera transakcji lub koordynatora transakcji) i mają serializowalne izolacji.
Aby uzyskać więcej informacji na temat transakcji, zobacz Transakcje.
Strumienie pomagają deweloperom przetwarzać serię elementów danych niemal w czasie rzeczywistym. Orleans strumienie są zarządzane; strumienie nie muszą być tworzone ani rejestrowane przed opublikowaniem ziarna lub klienta ani subskrybowania strumienia. Pozwala to na większe oddzielenie producentów strumieni i konsumentów od siebie i infrastruktury.
Przetwarzanie strumienia jest niezawodne: ziarna mogą przechowywać punkty kontrolne (kursory) i resetować do przechowywanego punktu kontrolnego podczas aktywacji lub w dowolnym późniejszym czasie. Strumienie obsługiwać dostarczanie wsadowe komunikatów użytkownikom w celu zwiększenia wydajności i wydajności odzyskiwania.
Strumienie są wspierane przez usługi kolejkowania, takie jak Azure Event Hubs, Amazon Kinesis i inne.
Dowolna liczba strumieni może być multipleksowana na mniejszą liczbę kolejek, a odpowiedzialność za przetwarzanie tych kolejek jest równoważona w całym klastrze.
Jeśli interesuje Cię wprowadzenie Orleansdo filmu wideo , zapoznaj się z następującym filmem wideo:
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Szkolenie
Moduł
Wprowadzenie do Orleanu - Training
Dowiedz się, czym jest struktura Orleanu, jakie korzyści może zapewnić i jak zintegrować ją z aplikacjami.