Messaging w .NET

Post on 20-Jan-2016

61 views 0 download

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

Transcript of Messaging w .NET

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