Operator OUTPUT RABBITMQ umożliwia przesłanie komunikatu do brokera wiadomości RabbitMQ. Komunikat jest tworzony na podstawie danych pochodzących ze strumienia magistrali wejściowej operatora i wysyłany do wskazanej kolejki lub wymiany (exchange) w systemie RabbitMQ. Operator działa dla każdego rekordu magistrali osobno, przesyłając pojedynczy komunikat na podstawie danych z danego rekordu.
Broker RabbitMQ, zgodnie z konfiguracją, przekazuje wiadomości do podłączonych konsumentów, w tym także do innych aplikacji lub modułów, które nasłuchują na określonych kanałach. System GRAVITY może także działać jako konsument wiadomości, co pozwala na dwukierunkową komunikację oraz integrację z innymi systemami w architekturze opartej na zdarzeniach.
Zastosowania operatora OUTPUT RABBITMQ:
- integracja procesów GRAVITY z systemami korzystającymi z kolejek wiadomości,
- przesyłanie komunikatów do rozproszonych aplikacji i usług,
- realizacja architektury opartej na zdarzeniach i asynchronicznej wymianie danych,
- przekazanie realiazacji zadania innemu systemowi.
Przykład projektu GRAVITY z użyciem operatora OUTPUT RABBITMQ.
WYBÓR I TWORZENIE POŁĄCZENIA RABBITMQ
Przejdź na pierwszą zakładkę RabbitMQ connection w właściwościach operatora.
Jeśli masz już utworzone połączenie wybierz je z listy wyboru RabbitMQ Connection pola połączenia zostaną wypełnione zgodnie z wybranym połączeniem.
Możesz zmienić dane połączenia klikając przycisk Edit.
Jeśli nie masz jeszcze zdefiniowanego Twojego połączenia RabbitMQ w systemie możesz je dodać wykorzystując przycisk Add.
Po uzupełnieniu danych nowego połączenia możesz je przetestować przyciskiem Test connection i zapisać w systemie korzystając z przycisku Save.
Po zapisaniu połączenie będzie dostępne w systemie pod nazwą jaka została podana w polu Name.
KONFIGURACJA WIADOMOŚCI
W pierwszym kroku musisz określić w jaki sposób chcesz wysłać wiadomość (zakładka Message configuration).
W zależności jak masz skonfigurowany serwer wiadomości musisz określić gdzie chcesz wysłać wiadomość w polu Send message to:
- Direct to queue → możesz wysłać wiadomość bezpośrednio do wskazanej kolejki utworzonej na serwerze. W tym wypadku musisz podać dodatkowo nazwę kolejki w polu Queue name.
- To exchange → możesz wysłać wiadomość do centrali wiadomości, która zgodnie zgodnie z konfiguracją przekazuje wiadomość do odpowiednich kolejek.
W przypadku wysyłania wiadomości do centrali wymagane jest podanie nazwy centrali w polu Exchange name oraz opcjonalnie Routing key.
Możesz również określić jak ma zachować się system w przypadku niepowodzenia operacji wysyłki komunikatu na serwer RabbitMQ np. w przypadku braku połączenia z serwerem.
W polu Action after failed użyj jedną z dwóch dostępnych opcji:
- Continue processing → Informacja o błędzie będzie widoczna w logach wykonania, jednak nie spowoduje to przerwania procesu, wycofania ewentualnych transakcji i zgłoszenia błędu przetwarzania.
- Abort processing with error → Proces zostanie przerwany, transakcje wycofane i zgłoszony zostanie błąd przetwarzania procesu.
Ostatnim krokiem jest utworzenie samej wiadomości (zakładka Message).
Treść wiadomości może pochodzić z dwóch źródeł (pole Message source):
- From busbar → treść wiadomości dostępna jest na magistrali w jednym z jej bitów (kolumn). Odpowiedni bit musisz wskazać w polu Column with message.
- Text → Możesz sam budować wiadomość w polu Message z wykorzystaniem wszystkich bitów magistrali jak i parametrów projektu.