Messaging w .NET.

1 Messaging w .NET ...
Author: Frydryk Wojnowski
0 downloads 2 Views

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