1 Messaging w .NET
2 Agenda Messaging AMQP Podstawowa konfiguracja serwera RabbitMQPublikowanie na kolejkę Przykładowy klient: Task queue Broadcast Subscribution
3 Czym jest messaging? Metoda komunikacji i wymiany wiadomości
4 Co nam daje messaging?
5 Integracja systemów
6 Skalowalność Giełda Rynki walutowe
7 Monitoring Przesył dużych ilości danych do wielu klientów narazPrzesył tych samych danych do wielu klientów na raz
8 Dostarczenie w odpowiedniej kolejnościSystemy transakcyjne Systemy rozproszone Rozwiązania w chmurze
9 Nieznany adresat
10 Sens biznesowy? Decentralizacja systemuBrak ograniczeń co do technologii Uniezależnienie od jednego dostawcy oprogramowania?
11 Czym jest AMQP? Otwarty, ustandaryzowany protokół, nie API JMS – APIAnalogia: HTTP – internet, AMQP – messaging
12 Virtual Host Każdy host ma swoją przestrzeń nazw, zestaw exchange'y, kolejek i powiązań Możliwość adresowania różnych hostów w obrębie jednego serwera
13 Exchange, Binding, QueueExchange a publisher Kolejka a publisher Exchange a kolejka Binding
14 Message Broker - Rabbit MQCzym jest broker, jaka jest jego rola? przyjmowanie/wysyłanie wiadomości routing niezależny od języka bazujący na protokole AMQP (pluginy do XMTP, HTTP) Message Broker - Rabbit MQ
15 Konfiguracja Rabbit MQ
16 Publikowanie na kolejkęWłaściwości kolejki: - Brak limitów wielkości - Wiadomości przechowywane tylko wewnątrz kolejki - Brak ograniczeń co do ilości klientów
17 Kolejki zadań Symulacja zadaniowościMessage acknowledgment - co się dzieje gdy klient umiera Popularny problem - redelivery w przypadku odłączenia klienta (basicACK)
18 Kolejki zadań Message durability - co się dzieje po zerwaniu połączenia, jak nie zgubić wiadomości? Fair dispatch - równe obciążenie klientów
19 Publish/Subscribe 1. Exchange: fanout, direct, topic2. Tymczasowe kolejki. 3. Binding.
20 Fanout Exchange - Broadcast
21 Routing – Direct ExchangeDirect exchange (binding key = routing key) Emitowanie message'y
22 Topic Exchange * - zastępuje dokładnie jedno słowo# - zastępuje 0 lub więcej słów
23 RPC – Remote Procedure Call