• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prowizoryczny system kolejkowania z mognodb

Object Storage Arubacloud
0 głosów
146 wizyt
pytanie zadane 25 marca 2021 w JavaScript przez KaawKaa Nowicjusz (120 p.)
Cześć

Mam pytanie odnośnie mikroserwisów i kolekowania. Mianowicie mam 3 mikroserwisy które zajmują się enkodowaniem plików wideo i 1 system który zapisuje otrzymane pliki od klienta.  Muszę teraz jakoś przekazać informację aby mikroserwisy zaczęły enkodować pliki.

Pierwszym pomysłem było rabbitmq albo kafak jednak nigdy nie pracowałem z tymi rozwiązaniami oraz nie chcę komplikować systemu. Pomyślałem że stworzę wspólną baze mongo do które system system wpisze nowy dokument zawierający ściężke pliku oraz jakieś podstawowe dane a serwisy enkodujące będą w pętli czekały na nowe pliki. Jendak pojawia się pytanie czy mikroserwisy będą miały dostęp do ścieżki oraz jak zapobiec aby serwisy enkodujące nie zaczeły enkodować tego samego pliku.

1 odpowiedź

0 głosów
odpowiedź 26 marca 2021 przez edutomek Dyskutant (8,380 p.)

Nie sądzę, abym był w stanie zaproponować jakieś sensowne rozwiązanie, ale miałbym parę uwag odnośnie samego problemu.

1) Sam system do komunikacji (rabbitmq) chyba nie rozwiąże problemu kolejkowania zadań. Chyba, że po otrzymaniu pliku od klienta byłby jakiś "load balancer", który podejmowałby decyzję, któremu mikroserwisowi wysłać zadanie.

Bo w istocie są tu dwa różne problemy: pierwszy z komunikacją (przesyłanie informacji), drugi z kolejkowaniem.

2) Problem z dostępem mikroserwisów "do ścieżki" (tak to jest napisane) to raczej kwestia konfiguracji całego systemu.

3) Jak zapobiec sytuacji, w której kilka mikroserwisów "rzuca" się na ten sam plik? Bardzo prosto. Każdy mikroserwis powinien mieć własną kolejkę, z której będzie pobierał pliki do enkodowania (np. poprzez polling, co jakiś czas).

Przychodzi nam kolejne zadanie, to można sprawdzić, który mikroserwis akurat się "nudzi" (albo ma najmniejszą kolejkę, albo zastosować jeszcze inną heurystykę...) i wrzucić mu to do kolejki.

Innymi słowy - kolejkowanie powinno się odbywać POZA mikroserwisami (bo inaczej trzeba będzie rozwiązać problem ewentualnych konfliktów przy podziale zadań).

Kwestia komunikacji z mikroserwisem to już odrębny temat. (Może być poprzez API, może być poprzez wspólną bazę danych i polling po stronie mikroserwisu - możliwości jest wiele.)

Podobne pytania

0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 3 stycznia 2021 w JavaScript przez Linwa Nowicjusz (160 p.)
0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 31 marca 2020 w JavaScript przez Mariusz Podgórski Początkujący (400 p.)
0 głosów
0 odpowiedzi 116 wizyt
pytanie zadane 3 września 2019 w JavaScript przez Louel Nowicjusz (140 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...