A SOA (Service-Oriented Architecture) és a mikroszolgáltatások egyaránt szolgáltatásokra bontják a rendszereket, de különböznek a granularitás, az adattulajdonlás és a szolgáltatások közötti kommunikáció tekintetében.
A SOA (Service-Oriented Architecture) és a mikroszolgáltatások egyaránt szolgáltatásokra bontják a rendszereket, de különböznek a granularitás, az adattulajdonlás és a szolgáltatások közötti kommunikáció tekintetében.
| Szempont | SOA | Mikroszolgáltatások |
|---|
| Granularitás | Durva szemcsézettség | Finom szemcsézettség |
| Kommunikáció | Gyakran ESB-n keresztül | Könnyűsúlyú (REST/gRPC/messaging) |
| Adatok | Gyakran megosztott | Adatbázis szolgáltatásonként |
| Irányítás | Központosított | Decentralizált |
| Protokoll | Gyakran SOAP/XML | Általában HTTP/JSON, gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
A mikroszolgáltatások az "intelligens végpontok, butacsövek" elvét követik: az intelligencia a szolgáltatásokban van, és a szállítás egyszerű marad. Az SOA gyakran központosítja a logikát az ESB-ben.
Ne vezessen újra be ESB-szerű szűk keresztmetszetet. Egy nehéz központi busz visszaalakítja a mikroszolgáltatásokat az SOA-ba, extra lépésekkel.
A különbség főleg a decentralizációról szól: a mikroszolgáltatások az adattulajdonlást és a logikát az egyes szolgáltatásokba tolják, hogy elkerüljék a központi szűk keresztmetszetet, amely sok SOA-telepítést nehézzé tett.
A megértés megóv attól, hogy véletlenül újraépíts az SOA-csatolást a mikroszolgáltatások címkéje alatt.