Nu bespreken we een microservice-architectuur voor het probleem, vanwege de benodigde schaalbaarheid van de applicatie in productie. Ook voor ontwikkelingsdoeleinden is dit cruciaal, omdat Task1 en Task2 onlangs nieuwe functies/parameters hebben gekregen en anders schalen in ontwikkeling.
Dit is precies wat een streamverwerkingsplatform goed doet. Ik raad aan om voor dit probleem een systeem als Apache Kafka of Apache Pulsar te gebruiken.
Moeten er ten minste twee verschillende services zijn voor Taak1 en Taak2 en misschien zelfs één voor de daadwerkelijke iteratie/simulatiestatuscontrole?
Taak1 en Taak2 zijn zogenaamde streamprocessors , ze lezen (abonneren zich op) één onderwerp , enkele bewerkingen/transformaties uitvoeren en schrijven (publiceren) naar een ander onderwerp .
De belangrijkste vraag hier is wat de argumenten zijn voor een microservice-architectuur vanwege waarschijnlijk een communicatie-/netwerkknelpunt? De enige manier om dit te versnellen, is door alle benodigde gegevens voor de simulatietaak in het geheugen te spawnen en deze daar de hele tijd te bewaren om het netwerkknelpunt te vermijden?
Nogmaals, dit is precies het probleem dat een systeem als Apache Kafka of Apache Pulsar goed doet. Om te schalen schrijft en leest in een streamverwerkingssysteem, kunt u partitioneren uw onderwerpen .