dotnetomaniak.pl - Artykuły z tagiem Programowanie rozproszone

Pierwszy wpis na blogu i zarazem mój debiut. Co prawda ten artykuł z .NET powiązany nie jest - ale nie wykluczam w przyszłości i takich z pogranicza .NET – Data ;) Każdy feedback będzie mile widziany.

Źródło: pieceofdata.pl
Dziel się z innymi:
Czy potrzebujesz Big Data? – Piece of Data

Jak wspomniałem w jednym z wcześniejszych już wpisów, nie ma znaczenia, gdzie aktor jest zlokalizowany. Dzięki AKKA.NET jest to szczegół  konfiguracyjny. Jeśli pewnego dnia, stwierdzimy, że wykonywanie obliczeń na jednym komputerze nie wystarcza, wtedy po prostu  zmieniamy konfigurację, aby hostować danego aktora gdzieś indziej. Framework zadba o komunikację (TCP) między węzłami znajdującymi się w innych sieciach. W ten sposób, bardzo łatwo jest sk...

Dziel się z innymi:
AKKA.NET – zdalni aktorzy

Programowanie rozproszone 2982 dni, 15 godzin, 44 minuty temu rroszczyk 79 źrodło rozwiń

Dzisiaj zacząłem pisać post o hierarchii aktorów. Jest to bardzo ważny element w celu osiągnięcia skalowalności i dobrej obsługi błędów (np. poprzez izolacje wadliwych aktorów). W połowie jednak stwierdziłem, że najpierw wypada napisać krótki wpis o zdarzeniach (hooks), jakie możemy zdefiniować w AKKA. Pozwoli nam to potem lepiej zrozumieć przepływ informacji w hierarchiach aktorów. Każdy aktor, może znajdować się w następujących etapach...

AKKA.NET – czas życia aktorów, zdarzenia (hooks)

Zanim będę kontynuował serię o AKKA.NET, warto zapoznać się z podstawami programowania reaktywnego. Pozwoli to później zrozumieć, w jaki sposób AKKA.NET implementuje założenia programowania reaktywnego. Dzisiaj zatem przedstawię tzw. “The Reactive Manifesto”, którego pełną treść można znaleźć tutaj. Moim zdaniem jednak, manifest może wydawać się trochę skomplikowany i dlatego zdecydowałem się wyjaśnić to po swojemu.

Programowanie reaktywne

Programowanie rozproszone 3053 dni, 1 godzinę, 39 minut temu rroszczyk 309 źrodło rozwiń

BlockingCollection jest specjalną kolekcją danych, przygotowaną do implementacji wzorca producent-konsument. Nakład pracy do implementacji tego wzorca jest minimalny z BlockingCollection. Nie musimy martwić się o synchronizację, sekcję krytyczną czy deadlock. Zacznijmy od razu od przykładu. Producent będzie wyglądać następująco...

Producent-konsument w C# – BlockingCollection

Programowanie rozproszone 3095 dni, 1 godzinę, 25 minut temu rroszczyk 340 źrodło rozwiń

Sporo ostatnio o SOA i mikroserwisach. Jednym z wyzwań podczas rozłupywania monolitu na serwisy jest wydajność. Wywołania in-memory są zastępowane np. HTTP lub innym zdalnym protokołem. Niesie to ze sobą kilka niedogodności m.in.: 1. Wydajność jest dużo mniejsza – serializacja, deserializacja, nawiązanie połączenia, transmisja danych. 2. Serwis może być nieaktywny. 3. Może wystąpić timeout. Powyższe punkty mogą być wyjątkowo niebezpieczne, gdy wiele usług próbuje wywołać serwisy, które aktualnie nie...

Obsługa zdalnych wywołań: wzorzec Circuit Breaker

Programowanie rozproszone 3248 dni, 15 godzin, 16 minut temu rroszczyk 327 źrodło rozwiń

Ostatnio na blogu sporo o SOA. W poprzednim wpisie, poruszyłem temat kompatybilności, teraz czas na coś, co ma na celu zminimalizowanie ilości różnych wersji usług. Najprostszym sposobem na uniknięcie problemów z kompatybilnością jest po prostu nie wprowadzenie niekompatybilnych zmian. Consumer-driven contracts to prosty sposób, aby mieć pod kontrolą śledzenie zmian oraz ich wpływ  na konsumentów naszej usługi. Zwykle usługi posiadają pewien schemat (schema) czyli po prostu kontrakt. Najbardziej restry...

Dziel się z innymi:
Kompatybilność usług: consumer-driven contracts

Programowanie rozproszone 3255 dni, 1 godzinę, 28 minut temu rroszczyk 88 źrodło rozwiń

Kompatybilność usług jest problemem w każdej architekturze SOA, ale w przypadku mikro-usług staje się jeszcze bardziej widoczna. W przyszłości chce napisać post o tzw. consumer-driven contracts, które znacząco mogą zminimalizować potrzebę wersjonowania usług. W każdym razie, bardzo prawdopodobne, że w pewnym momencie zajdzie potrzeba wprowadzenia zmiany, która nie jest kompatybilna wstecz. Jeśli nasz system składa się np. z 20 usług to musimy mieć mechanizm, który zagwarantuje nam, że nie wprowadzimy zm...

Kompatybilność usług

Programowanie rozproszone 3261 dni, 11 godzin, 49 minut temu rroszczyk 208 źrodło rozwiń

Dzisiaj ostatnia warstwa modelu, która zdecydowanie często jest pomijana w implementacjach REST. Moim zdaniem, w przypadku publicznych API jest bardzo ważna, szczególnie w środowisku mikro-serwisów, gdzie nawigacja jest utrudniona ze względu na liczbę usług. HATEOAS to skrót od Hypertext As The Engine Of Application State. Mechanizm dostarcza możliwość nawigacji przez zasoby bez wiedzy o konkretnych adresach URL.  Załóżmy, że mamy bazę klientów w systemie i możemy w niej:Wylistować listę klientów.Zwróci...

Richardson Maturity Model, warstwa 3 – HATEOAS

Web 3270 dni, 16 godzin, 19 minut temu rroszczyk 259 źrodło rozwiń

W dwóch postach poruszałem już temat dokumentacji usług REST. Ręczne tworzenie plików JSON dla swagger jest dosyć czasochłonne i łatwo potem zapomnieć przy jakiś modyfikacjach o aktualizacji dokumentacji. Dla ASP.NET MVC WebAPI na szczęście jest Swashbuckle.

ASP.NET Swashbuckle – Swagger

Web 3272 dni, 15 godzin, 41 minut temu rroszczyk 159 źrodło rozwiń

Martin Fowler, kilka lat temu pisał o tzw. Richardson maturity model, którego autorem jest tak naprawdę Leonard Richardson. Groźnie brzmiąca nazwa, jak zwykle nie opisuje nic bardzo skomplikowanego. Nie mniej jednak, model ten doskonale opisuje założenia usług RESTful. W zasadzie nie ma framework’ów, które wymuszałyby poprawną implementację REST, stąd niezbędne jest zrozumienie jakie są założenia tych usług. Programiści zbyt często luźno interpretują pojęcie REST. Moim zdaniem, w momencie, gdy REST wchod...

Co to jest usługa REST? Richardson maturity model oraz poziomy 0,1,2.

Programowanie rozproszone 3275 dni, 13 godzin, 50 minut temu rroszczyk 529 źrodło rozwiń

Największa zaleta mikro-serwisów, a mianowicie pojedyncza odpowiedzialność, często bywa również problemem, a raczej wyzwaniem. Załóżmy, że nasz system ma następujący mikro-usługi:CustomerService – podstawowe informacje o klientach AddressService – wyszukiwarka adresów CreditCardDetails – dane o kartach Nie chce wymieniać tutaj długiej listy, ale wyobraźmy sobie...

Mikro-serwisy: wzorzec gateway

Sztuka programowania 3288 dni, 12 godzin, 2 minuty temu rroszczyk 411 źrodło rozwiń

Najaktywniejsi w tym miesiącu