Storm - rozproszony system przesyłania wiadomości
Apache Storm przetwarza dane w czasie rzeczywistym, a dane wejściowe zwykle pochodzą z systemu kolejkowania wiadomości. Zewnętrzny rozproszony system przesyłania wiadomości zapewni dane wejściowe niezbędne do obliczeń w czasie rzeczywistym. Spout odczyta dane z systemu przesyłania wiadomości i przekształci je w krotki i wprowadzi do Apache Storm. Ciekawostką jest to, że Apache Storm wykorzystuje swój własny rozproszony system przesyłania wiadomości wewnętrznie do komunikacji między nimbusem a przełożonym.
Co to jest rozproszony system przesyłania wiadomości?
Rozproszone przesyłanie wiadomości opiera się na koncepcji niezawodnego kolejkowania wiadomości. Wiadomości są kolejkowane asynchronicznie między aplikacjami klienckimi a systemami przesyłania wiadomości. Rozproszony system obsługi wiadomości zapewnia korzyści w postaci niezawodności, skalowalności i trwałości.
Większość wzorców przesyłania wiadomości jest zgodna z publish-subscribe model (po prostu Pub-Sub), gdzie są wywoływani nadawcy wiadomości publishers i ci, którzy chcą otrzymywać orędzia, są wezwani subscribers.
Po opublikowaniu wiadomości przez nadawcę abonenci mogą odebrać wybraną wiadomość za pomocą opcji filtrowania. Zwykle mamy dwa rodzaje filtrowania, jeden totopic-based filtering a inny jest content-based filtering.
Należy pamiętać, że model pub-sub może komunikować się tylko za pośrednictwem wiadomości. Jest to bardzo luźno związana architektura; nawet nadawcy nie wiedzą, kim są ich subskrybenci. Wiele wzorców komunikatów umożliwia brokerowi komunikatów wymianę komunikatów publikowania w celu uzyskania szybkiego dostępu dla wielu subskrybentów. Przykładem z życia jest Dish TV, które publikuje różne kanały, takie jak sport, filmy, muzyka itp., A każdy może subskrybować własny zestaw kanałów i pobierać je, gdy tylko są dostępne.
W poniższej tabeli opisano niektóre popularne systemy przesyłania wiadomości o dużej przepustowości -
Rozproszony system przesyłania wiadomości | Opis |
---|---|
Apache Kafka | Kafka powstał w korporacji LinkedIn, a później stał się podprojektem Apache. Apache Kafka jest oparty na trwałym, rozproszonym modelu publikowania i subskrybowania, z obsługą brokera. Kafka jest szybka, skalowalna i bardzo wydajna. |
RabbitMQ | RabbitMQ to niezawodna, rozproszona aplikacja do przesyłania wiadomości typu open source. Jest łatwy w użyciu i działa na wszystkich platformach. |
JMS (Java Message Service) | JMS to interfejs API typu open source, który obsługuje tworzenie, odczytywanie i wysyłanie wiadomości z jednej aplikacji do drugiej. Zapewnia gwarantowane dostarczanie wiadomości i jest zgodny z modelem publikowania i subskrybowania. |
ActiveMQ | System przesyłania wiadomości ActiveMQ jest interfejsem API typu open source dla JMS. |
ZeroMQ | ZeroMQ to przetwarzanie komunikatów peer-peer bez brokera. Zapewnia wzorce komunikatów typu push-pull, router-dealer. |
Pustułka | Kestrel to szybka, niezawodna i prosta rozproszona kolejka komunikatów. |
Protokół oszczędności
Thrift został zbudowany na Facebooku w celu rozwoju usług międzyjęzykowych i zdalnego wywoływania procedur (RPC). Później stał się projektem Open Source Apache. Apache Thrift toInterface Definition Language i pozwala w łatwy sposób definiować nowe typy danych i wdrażanie usług na podstawie zdefiniowanych typów danych.
Apache Thrift to także platforma komunikacyjna obsługująca systemy wbudowane, aplikacje mobilne, aplikacje internetowe i wiele innych języków programowania. Niektóre z kluczowych funkcji związanych z Apache Thrift to jego modułowość, elastyczność i wysoka wydajność. Ponadto umożliwia przesyłanie strumieniowe, przesyłanie wiadomości i RPC w aplikacjach rozproszonych.
Storm intensywnie używa protokołu Thrift do wewnętrznej komunikacji i definiowania danych. Topologia burzy jest prostaThrift Structs. Storm Nimbus obsługujący topologię w Apache Storm to plikThrift service.