Wpis z mikrobloga

Ostatnio w ramach ogarnięcia jak działają websockety napisałem prostą aplikacje czat, front w angularze, backend w springu wszystko działa elegancko następną rzeczą którą chciałem ogarnąć to postawienie kilka instancji backendu i load balancer skonfigurowany jako round robin i tutaj pojawia się problem że użytkownicy nie dostają wszystkich wiadomości tylko te które przyszły do konkretnego serwera i teraz pytanie jak to ogarnąć próbowałem przez broker wiadomości który wysyła wiadomość do wszystkich serwerów ale wydaje mi się to głupie bo zamiast odciążyć jeden z serwerów to obciążamy je tak samo
#programowanie
  • 9
@FocentDiutt Myślałem nad Kafka ale musiałbym wysłać wiadomość do wszystkich serwerów to już lepiej mieć jeden

@LazyInitializationException To chyba daje tylko to że dany user w sesji łączy się zawsze z tym samym serwerem ale to już jest defaultowo ustawione

@WhiskyRomeo muszę poczytać

Tak wygląda przy dwóch instancjach, chciałbym żeby wiadomość przychodziła do wszystkich
Andrew1231 - @FocentDiutt Myślałem nad Kafka ale musiałbym wysłać wiadomość do wszyst...

źródło: comment_1659040906FOIpyGr6rA5ROIakBxdzOG.jpg

Pobierz
Myślałem nad Kafka ale musiałbym wysłać wiadomość do wszystkich serwerów to już lepiej mieć jeden


@Andrew1231: no to co? Dzięki obecności LB rozrzucasz połączenia na workery, a te czytają z Kafki/Rabbita wiadomości wszystkie, jak mają jakąś do klienta którego nie mają w swoim poolu to skip. Do pewnej skali takie coś jest ok, z większymi gdzie by to nie dawało rady niestety nie miałem kontaktu, ale jak chcesz to zrobić od