Kafka połączenie z synchronicznym serwisem REST api

Kafka połączenie z synchronicznym serwisem REST api
Andrzej Ustupski
  • Rejestracja:prawie 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:4
0

Cześć,

Ostatnio rozpocząłem przygodę z kafką i zastanawia mnie sprawa pobierania danych z broker'a synchronicznie.
(na inny przykład nie mogłem wpaść)

Producer bada stan systemu a następnie wysyła wiadomość do broker'a.
W pewnym momencie chcę wykonać jakąś operację na moim serwisie REST api ale najpierw chcę pobrać wiadomość wysłaną przez Producera.

Pytania

  1. Czy to co piszę wgl ma sens ?
  2. W jaki sposób mogę to wykonać w spring boot'cie ?
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 9 godzin
  • Postów:1875
1

Chcesz wykonać jakaś akcję w reakcji na event? Chyba do tego to służy :) gdzie pojawia się wątpliwość?


”Engineering is easy. People are hard.” Bill Coughran
Andrzej Ustupski
Właśnie całkiem inaczej. Event wykonał się w przeszłości wiadomość znajduje się w topicu a ja chcę ja sobie pobrać kiedy mi się zachce, powiedzmy po przyjściu requesta z frontu.
Charles_Ray
No to w sumie trochę dziwne, bo traktujesz Kafke jak bazę danych. Czemu tak?
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Czemu nie użyjesz do tego kolejki? Bo to co opisałeś to nic innego jak właśnie kolejka. Składują sie tam rzeczy a kiedy chcesz to sobie je odczytujesz.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
W0
Nawet niepotrzebna jest kolejka, wystarczy KafkaStreams
JP
  • Rejestracja:prawie 6 lat
  • Ostatnio:około rok
  • Postów:24
0

Event wykonał się w przeszłości wiadomość znajduje się w topicu a ja chcę ja sobie pobrać kiedy mi się zachce, powiedzmy po przyjściu requesta z frontu

Zapoznaj się z kafkaStreams albo KSQL server.

Charles_Ray
A to nie są rozwiązania pod strumieniowe przetwarzanie danych? Kolega chce je przetwarzać na żądanie ;)
JP
kafkaStreamsami można zbierać eventy do KTable i potem wyciągać je na żądanie. Mniej więcej taki problem kolega opisuje
superdurszlak
@JacekPs: tylko że KafkaStreams sadzi pomocniczymi topicami na prawo i lewo. Transformacja, join, cokolwiek - cyk, pod spodem dodatkowy topic.
JP
no to prawda, nawet więcej niż jeden. Gdzieś stan musi trzymać
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:4 dni
  • Lokalizacja:Kraków
  • Postów:2000
1
Andrzej Ustupski napisał(a):
  1. Czy to co piszę wgl ma sens ?

Jak dla mnie nie bardzo, brzmi jakbyś chciał używać Kafki jako bazy danych. Może i się da, pytanie jedynie czy warto tak kombinować.

Gdzie żyje producer?

Do jakich danych ma wgląd?

Gdzie będzie żył consumer (oraz API które od niego zależy)?

Do czego consumer i API mogą mieć dostęp?

Co zamierzasz zrobić, jeśli event jeszcze nie dotarł?

  1. W jaki sposób mogę to wykonać w spring boot'cie ?

Spring ma integrację do SDK Kafki, możesz sobie zdefiniować beana który będzie consumerem eventów na danym topicu, do tego możliwe że jakieś tam serializery / deserializery / mappery / jak to zwał, zależy jaki protokół / format tam sobie wciśniesz np. CloudEvents, Apache Avro etc.


edytowany 1x, ostatnio: superdurszlak

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.