Operator OUTPUT RABBITMQ umożliwia przesłanie komunikatu do brokera wiadomości RabbitMQ. Komunikat jest tworzony na podstawie danych pochodzących ze strumienia magistrali 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 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 za pomocą przycisku Edit.
Jeśli nie masz jeszcze zdefiniowanego Twojego połączenia RabbitMQ w systemie, możesz je dodać za pomocą przycisku 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 od konfiguracji serwera wiadomości należy wskazać miejsce docelowe wysyłanej wiadomości 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 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 wartości 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 jednej 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 ani zgłoszenia błędu przetwarzania.
- Abort processing with error → Proces zostanie przerwany, transakcje zostaną wycofane, a błąd przetwarzania procesu zostanie zgłoszony.
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 należy wskazać w polu Column with message.
- Text → Możesz samodzielnie budować treść wiadomości w polu Message, z wykorzystaniem wszystkich bitów magistrali jak i parametrów projektu.