Nu diskuterer vi en mikroservicearkitektur for problemet på grund af den nødvendige skalerbarhed af applikationen i produktionen. Også for udviklingsformål er dette afgørende, fordi Opgave1 og Opgave2 for nylig er tilføjet nye funktioner/parametre og skaleres forskelligt i udvikling.
Det er præcis, hvad en stream-behandlingsplatform gør godt. Jeg anbefaler at bruge et system som Apache Kafka eller Apache Pulsar til dette problem.
Skal der være mindst to forskellige tjenester til Task1 og Task2 og måske endda én til den faktiske iteration/simuleringstilstandskontrol?
Opgave1 og Opgave2 er det, der kaldes streamprocessorer , læser de (abonnerer på) ét emne , laver nogle operationer/transformationer og skriver (udgiver) til et andet emne .
Hovedspørgsmålet her er, hvad er argumenterne for en mikroservicearkitektur på grund af sandsynligvis kommunikations-/netværksflaskehals? Den eneste måde at fremskynde dette på er at skabe alle nødvendige data til simuleringsopgaven i hukommelsen og holde dem der hele tiden for at undgå netværksflaskehalsen?
Igen er det netop det problem, som et system som Apache Kafka eller Apache Pulsar gør godt. Til skalering skriver og læser i et strømbehandlingssystem, kan du partitionere dine emner .