"Probléma1: Erőforrás (pl. memória, CPU) mennyiségének korlátozása microservice-enként."
Egyrészt mit érsz el azzal, hogy egy hibásan megírt szolgáltatást OOM-re vagy éhezésre késztetsz? Nem a problémát oldod meg, csak a tünetet kezeled. Másrészt tudsz indítani menedzselt külön JVM instance-t azoknak az alkalmazásoknak, amelyeket kordában akarsz tartani. Közel nulla adminisztrációs teherrel.
"Probléma2: Monitorozni az egyes microservice-eket és annak függvényében újak indítása, meglevők leállítása."
Ezt meg tudod tenni gond nélkül JavaEE konténerrel is.
"Probléma3: Ha heterogén rendszerre (tetszőleges nyelvű microserevice-ek) van szükség (ami egy nagy előnye a microservice-eknek), akkor a kommunikáció, load balancing, auto discovery, routing, ... ugyanolyan problémás."
Igen, legrosszabb esetben ugyanolyan problémás.
"Probléma4: Amit meg is oldana az alkalmazás szerver azoknak a nagy része is elég korlátozott és nem finomhangolható (load balancing, auto discovery, routing, monitoring)."
Ez nem tűnt fel... ha már jelentős problémát okoz az, hogy finomhangolni kell ezeket, ott valami más el van rontva és ismét tünetet akarunk kezelni... az egész Java microservice arról szól, hogy valamit elrontottunk (például az, hogy Java-t választottunk a microservice fejlesztéséhez) és a probléma megoldása helyett próbálunk tüneteket kezelni amíg az egész spagetti annyira a körmünkre ég, hogy inkább újraírja az ember az éppen ebben a hónapban divatos új microservice keretrendszerrel, amíg az is szűk nem lesz.
Tudnál mondani egy olyan komolyabb microservice keretrendszert, ami létezett öt éve, most is pont úgy működik és szívesen dolgozol benne?