RabbitMQ & Kafka Flashcards
1
Q
Czym jest RabbitMQ
A
- message broker
- komunikacja asynchroniczna pomiędzy serwisami
- przyjmuje i przekazuje wiadomości pomiędzy usługami
- używa protokołu AMPQ
- RabbitMq jest jak skrzynka pocztowa, poczta oraz dostawca
2
Q
Producer
A
- jest to program , który tworzy i wysyła wiadomości
- określa routing key, który jest używany do dalszego kierowania wiadomośći
3
Q
Kolejka
A
- miejsce gdzie wiadomości są przechowywane i czekają na odebranie przez konsumentów
- Producenci mogą dodawać wiadomości do kolejki bez potrzeby bezpośredniego połączenia z konsumentami.
- mogą łagodzić chwilowe szczyty obciążenia przez buforowanie nadmiernego ruchu
- kolejki mogą gwarantować dostarczenie wiadomości nawet w przypadku tymczasowej niedostępności konsumentów
- Skalowalność - mogą obsłużyć rosnący przepływ danych poprzez dodawanie więcej konsumentów bez zmiany logiki producentów.
4
Q
Consumer
A
- program oczekujący na wiadomość
5
Q
Round robin dispatching
A
- algorytm używanych w kolejkach
- rozdziela równomiernie odbiorców
- przesyła kolejno każdą nową wiadomość do następnego konsumenta w sekwencji.
- każdy konsumenci otrzymuje mniej więcej taką samą liczbę wiadomości.
- nie zawsze jest idealny, jeśli zadania mają różny czas przetwarzania.
6
Q
Message acknowledgment
A
- informuje kolejkę, że dana wiadomość została odebrana i odpowiednio przetworzona przez konsumenta
- jeśli potwierdzenie nie zostanie odesłane to wiadomość zostanie wysłana ponownie
- wiadomość nie zostatnie stracona
- można ustawić automatyczne powtwierdzenia po wysłaniu
- można ustawić manulane - po potwierdzeniu wiadomość zostanie usunięta
7
Q
Message durability
A
- zdolności systemu do zachowania wiadomości nawet w przypadku awarii
8
Q
Fair dispatch
A
- techniki rozdzielania zadań pomiędzy różne pracownicze procesy (consumers) w sposób bardziej równomierny
- Celem tej techniki jest zapobieganie przeciążaniu niektórych pracowników, podczas gdy inni mają niewiele lub nic do zrobienia.
- Gdy pre-fetch count jest ustawiony na 1, RabbitMQ nie będzie wysyłał nowej wiadomości do pracownika, dopóki ten nie przetworzy i nie potwierdzi poprzedniej,
9
Q
Competing Consumer pattern
A
10
Q
Exchange
A
- węzeł komunikacyjny, który przyjmuje wiadomości od producentów (producers) i przekierowuje je do kolejek według określonych reguł
- Kiedy producent wysyła wiadomość do exchange, nie wie, do której kolejki wiadomość zostanie ostatecznie dostarczona.
- działa według określonego typu np. direct, topic, fanout, headers
11
Q
exchange type
A
- określa w jaki wymiana (exchange) przekierowuje wiadomości do kolejek na podstawie informacji, które zawiera wiadomość :
- routing key)
- binding rules)
12
Q
Typy exchange type
A
- direct
- topic
- headers
- fanout
13
Q
Binding
A
- relacja pomiędzy exchange a queue
- jak most
- określa jak wiadomości trafiają z wymiany do kolejki
14
Q
Publish/Subscribe
A
- publisher wysyła wiadomośc do wymiany, nie wiedząc kto , lub ile odbirców otrzyma tę wiadomość
- subskrybowanie zapisują sie do otrzymywania wiadomości z określonej kolejki
- idealny do rozglaaszania informacji do wielu odbirców gdzize komunikacja jest jednokierunkowa
- subskrybenci mogą dynamicznie dołączac lub opuszczać system
15
Q
Direct Exchange
A
- używa routing key
- ## wiadomośc jest wysyłana do kolejek z binding key pasującym do routing key wiadmości
16
Q
Fanout Exchange
A
- nie używa routing key
- wysyła wiadomości do wszystkich związanych kolejek