Upload
fayre
View
63
Download
0
Embed Size (px)
DESCRIPTION
Messaging w .NET. Agenda. Messaging AMQP Podstawowa konfiguracja serwera RabbitMQ Publikowanie na kolejkę Przykładowy klient: Task queue Broadcast Subscribution. Czym jest messaging?. Metoda komunikacji i wymiany wiadomości. Co nam daje messaging?. Integracja systemów. Skalowalność. - PowerPoint PPT Presentation
Citation preview
Messaging w .NET
Agenda
Messaging AMQP Podstawowa konfiguracja serwera RabbitMQ Publikowanie na kolejkę Przykładowy klient:
– Task queue– Broadcast– Subscribution
Czym jest messaging?
Metoda komunikacji i wymiany wiadomości
Co nam daje messaging?
Integracja systemów
Skalowalność
Giełda Rynki walutowe
Monitoring
Przesył dużych ilości danych do wielu klientów naraz
Przesył tych samych danych do wielu klientów na raz
Dostarczenie w odpowiedniej kolejności
Systemy transakcyjne Systemy rozproszone Rozwiązania w chmurze
Nieznany adresat
Sens biznesowy?
Decentralizacja systemu Brak ograniczeń co do technologii Uniezależnienie od jednego dostawcy oprogramowania?
Czym jest AMQP?
Otwarty, ustandaryzowany protokół, nie API
JMS – API Analogia: HTTP – internet,
AMQP – messaging
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
Exchange, Binding, Queue
Exchange a publisher Kolejka a publisher Exchange a kolejka Binding
Message Broker - Rabbit MQ
Czym 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)
Konfiguracja Rabbit MQ
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
Kolejki zadań
Symulacja zadaniowościMessage acknowledgment - co się dzieje gdy klient umiera
Popularny problem - redelivery w przypadku odłączenia klienta (basicACK)
Kolejki zadań
Message durability - co się dzieje po zerwaniu połączenia, jak nie zgubić wiadomości?
Fair dispatch - równe obciążenie klientów
Publish/Subscribe
1. Exchange: fanout, direct, topic2. Tymczasowe kolejki.3. Binding.
Fanout Exchange - Broadcast
Routing – Direct Exchange
Direct exchange (binding key = routing key)Emitowanie message'y
Topic Exchange
* - zastępuje dokładnie jedno słowo# - zastępuje 0 lub więcej słów
RPC – Remote Procedure Call