Nyní probereme architekturu mikroslužeb pro tento problém kvůli potřebné škálovatelnosti aplikace v produkci. Také pro účely vývoje je to klíčové, protože Task1 a Task2 jsou nedávno přidány nové funkce/parametry a ve vývoji se různě škálují.
To je přesně to, co platforma pro zpracování streamů dělá dobře. Pro tento problém doporučuji použít systém jako Apache Kafka nebo Apache Pulsar.
Měly by existovat alespoň dvě různé služby pro Task1 a Task2 a možná dokonce jedna pro řízení stavu skutečné iterace/simulace?
Task1 a Task2 se nazývá stream procesory , přečtou (přihlásí se k odběru) jedno téma , provádí nějaké operace/transformace a píše (publikuje) do jiného tématu .
Hlavní otázkou zde je, jaké jsou argumenty pro architekturu mikroslužeb kvůli pravděpodobně úzkému hrdlu komunikace/sítě? Jediný způsob, jak to urychlit, je vytvořit všechna potřebná data pro simulační úlohu v paměti a ponechat je tam po celou dobu, abyste se vyhnuli úzkému hrdlu sítě?
Opět je to přesně ten problém, který systém jako Apache Kafka nebo Apache Pulsar dělá dobře. Chcete-li škálovat zapisuje a čte v systému zpracování datových proudů, můžete rozdělit vaše témata .