Reactive streams i projekt Reactor ogólne informacje

W tym spisie zebrałem krótkie informacje na temat Reactive streams i project Reactor. Są również bardzo ciekawe linki, które w szybki sposób pomogą Ci wskoczyć na poziom umożliwiający programowanie z użyciem wspomnianych bibliotek.

Elementy występujące w Reactive streams możemy podzielić na:

  1. Publisher
  2. Subscriber
  3. Subscription
  4. Processor

Kiedy Subscriber zaczyna subskrybować Publisher zostaje utworzona Subskrybcja. Subskrybcja jest następnie przesyłana do metody onSubscribe.

Subscriber wysyła rządanie o elementy za pomocą onSubscribe i Publisher wysyła je. W przypadku gdy Publisher nie ma już więcej elementów do wysłania wywołana zostaje metoda onComplete.

W momencie gdy wystąpi błąd, subsrkypcja zostaje przerwana i zostaje wywołana metoda onError.
src: https://github.com/reactive-streams/reactive-streams-jvm


Projekt reactor

Aby nie tracić czasu podaje poniżej przydatne dla mnie informacje, które od razu pokazują jak stosować najbardziej używane elementy projektu Reactor:

  1. Flux
  2. Mono

Są to implementacje, interfejsu Publisher. Powyższe elementy muszą zostać zasubskrybowane. Można na nich operować za pomocą metod np:

  • map
  • flatMap
W źródłach poniżej znajdują się bardzo przydatne informacje na temat praktycznego użycia Reactor. W linku 1 kiedy używać jakiego operatora np. kiedy używać Mono.just a w którym przypadku jest lepszy Optional. Są też podane informacje jak transformować uzyskane dane.
W linku 2 są natomiast podane najlepsze praktyki. Są tam odpowiedzi na pytania np: Jak odebrać i obsłużyć żądanie synchroniczne.
Praktyczne ćwiczenia znajdują się natomiast w Linku 3 . Jest to projekt na GitHubie utworzony przez twórców projektu Reactor. Musimy w nim ukończyć rozpoczęty kod. Jest to wspaniałe ćwiczenie 🙂

src:

  1. https://projectreactor.io/docs/core/release/reference/#which-operator
  2. https://projectreactor.io/docs/core/release/reference/#faq
  3. https://github.com/reactor/lite-rx-api-hands-on



Dodaj komentarz