Yahoo_
#programowanie #programista15k #csharp
Siema mirasy,
Mam taki problem - mamy zewnętrzną zależność, która ma ograniczoną przepustowość do X req/min. Inne elementy systemu mają znacząco wyższą przepustowość, więc mamy wąskie gardło. Szczęśliwie owa zależność ma możliwość "batch update". Teraz co bym chciał zrobić - stworzyć komponent, który zgrupuje requesty i uderzy do danego serwisu - powiedzmy raz na minutę, żeby wrzucić wszystko co w międzyczasie się wydarzyło. Pytanie brzmi - jak się nazywa wzorzec, który coś takiego robi - pytam, bo chciałbym zobaczyć jak to jest projektowane i potencjalnie uniknąć błędów, które inni już popełnili i dawno znaleźli rozwiązanie.
  • Najlepsze
  • Wszystkie komentarze
p.....k
Treść przeznaczona dla osób powyżej 18 roku życia...
p.....k
@kobrys13: tak jestem w przeciwieństwie do ciebie - niby co mu ma dać ta kafka tutaj? W czym to ma być lepsze, biorąc pod uwagę problem opa, od dosłownie czegokolwiek innego wliczając w to najzwyklejszy local storage?

Skonsumujesz to po "drugiej stronie" i co dalej?
kobrys13
kobrys13
@P-uchate-K: Ehh - no tak, w pracy owocowe wtorki i owocowe czwartki mam. We środy bez owoców robię się agresywny.

Przepraszam @powaznyczlowiek
kobrys13
kobrys13
@Yahoo_: To zależy czy klienci, którzy będą dostarczali dane będą czekać na odpowiedź z batching requestu czy po prostu dostarczają dane i dostają 200 i nie czekają na wynik batch update.
sokytsinolop
@Yahoo_: ja bym kolejke zrobil, do niej wrzucal "akcje", a jak sie uzbiera "batchSize" akcji to probowal wrzucic do serwisu
p.....k
@Yahoo_: ten wzorzec to Proxy
kobrys13
kobrys13
kobrys13
  • adult
1
Treść przeznaczona dla osób powyżej 18 roku życia...
p.....k
Bądź mniej agresywny to pogadamy...


@kobrys13: ale to ty mnie zaatakowałeś

yyy? jesteś poważny?


ja nawet nic do ciebie nie pisałem xD czemu mam dla ciebie być miły skoro mnie bezpośrednio wyzywasz od niepoważnych?
m-wjeczur
m-wjeczur
  • adult
1
Treść przeznaczona dla osób powyżej 18 roku życia...
Yahoo_
Yahoo_ Autor
0
@kobrys13: Nie będą czekać.
@sokytsinolop: Generalnie wiem plus minus co chce zrobić tylko chce zobaczyć czy jest jakiś wzorzec (zakładam że nie pierwszy mam taki problem)
zibizz1
zibizz1
@Yahoo_: ja bym to nazwał batch job scheduling. Ostatnio miałem na firebase+cloud function. U mnie chodziło żeby uaktualnienia z ostatnich 10 minut których może być wiele wysłać tylko raz na te 10 minut. Z racji tego że systemy były w różnych częściach świata to szybko wyczerpałem limit max execution time i musiałem przerobić z pojedynczego przetwarzania na zbiorcze, czyli pobierałem z jednego systemu wszystkie dane jednym requestem, potem z drugiego
kobrys13
kobrys13
@Yahoo_: W takim wypadku tak jak pisze @sokytsinolop - ustawiasz najlepiej Kafke (która dostarcza persystencje, kolejnosc, skalowalnosc), która jest wysoce dostępna i transakcyjna, a kafka-external gateway ktory sobie dorobisz konsumuje i wrzuca na zewnątrz.

Nie znam nazwy patterna, ale stosowane bardzo powszechnie.
kobrys13
kobrys13
@powaznyczlowiek: yyy? jesteś poważny?
P-uchate-K
@powaznyczlowiek: @kobrys13
Ej nie kłocić mi się publicznie, weźcie sobie salkę i przegadajcie temat na spokojnie przy kawce,
bo wam zaraz scrum mastera zawołam coby bloker rozwiązał.