Uważam, że każdy system, nawet najmniejszy, zasługuje na bycie trwałym, wytrzymałym i skalowalnym, dlatego też staram się dobierać technologie, które w łatwy i przyjemny sposób pozwalają na realizację tego założenia. Żyjemy w ciekawych czasach, gdzie dane na których pracujemy często trafiają do nas z dużą częstotliwością, w ogromnych ilościach a liczby te wzrastają wraz z rozmiarem firmy w oszałamiającym tempie. Dlatego chciałbym przedstawić jedno z ciekawych narzędzi, które każdy .NET’owiec powinien posiadać w swoim orężu. Narzędziem tym jest AKKA.NET. Zapraszam zatem do rozproszonego świata Aktorów!
2. Michał Jasiorowski
• Architekt Rozwiązań w firmie SII
• Związany od początku kariery z ekosystemem .NET
• Lubię łączyć rozwiązania Open Source oraz komercyjne elementy platformy .NET
• Pasjonuję się systemami wysokodostępnymi, które rozwiązują ciężkie problemy w możliwie najprostszy sposób
• Lubię proste rozwiązania
4. DETALE
• Zakłady są zawierane przy
każdym rozdaniu
• Obstawiać można tylko do fazy
FLOP
• System obsługuje wiele rozdań
równolegle
• Musi działać na wielu maszynach
5. Schemat działania
System obsługi zakładów
Nowe rozdanie
Faza FLOP
Bet
Bet
Bet
Rozgrywka pokerowa
Graczeobstawiającyzakłady
Zakład
odrzucony
14. Czym więc jest AKKA?
• Implementacja modelu Aktorów opracowanego w latach `70
• Bazuje na koncepcji Aktorów realizujących niezależne
zadania, komunikujących się ze sobą w sposób
asynchroniczny z wykorzystaniem skrzynek pocztowych
• Aktorzy nie współdzielą żadnych danych, komunikacja
odbywa się poprzez wysyłanie niezmiennych wiadomości
• Aktor przetwarza w danym momencie zawsze tylko jedną
wiadomość
• Aktorzy mają rodziców i dzieci, rodzice dbają o swoje
dzieci (kiedy te mają awarię)
15. Czemu warto skorzystać z AKKA?
• Za darmo otrzymujemy thread safety, perystencję i
możliwość pracy stanowej
• Tworzymy prosty, bezpieczny i przejrzysty kod realizujący
skomplikowane zadania
• Wysoka wydajność: 50M msg/s na jednej maszynie, 2M
Aktorów per GB pamięci
• Łatwa rozszerzalność kodu (wystarczy dodać nowego
aktora)
• Prosta skalowalność
19. Czemu warto skorzystać z AKKA?
Przy tworzeniu systemów rozproszonych
Ułatwia tworzenie skalowalnych systemów dzięki temu, że system aktorów działa
tak samo tu:
jak i tu:
Dzięki Location Transparency