Sinchroninis bendravimas blokuoja skambintojąjį, kol gaunamas atsakymas; asinchroninis bendravimas siunčia žinutę ir tęsiasi nečekant. Kiekvienas sudaro skirtingus kompromisus ryšio, latencijos ir atsparumo srityse.
Sinchroninis bendravimas blokuoja skambintojąjį, kol gaunamas atsakymas; asinchroninis bendravimas siunčia žinutę ir tęsiasi nečekant. Kiekvienas sudaro skirtingus kompromisus ryšio, latencijos ir atsparumo srityse.
| Aspektas | Sinchroninis (REST/gRPC) | Asinchroninis (messaging) |
|---|
| Skambintojoje laukti? | Taip | Ne |
| Laikinis ryšys | Glaudus | Laisvas |
| Atsparumas išjungimams | Žemas | Aukštas (tarpininkas saugo) |
| Nuoseklumas | Momentinis | Galutinis |
| Sudėtingumas | Žemesnis | Aukštesnis |
| Debutuojamumas | Lengviau (tiesinis) | Sunkiau (srautai) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
Asinchroninis paslėpia gedimus — prarasta arba nuodingas pranešimas gali tyliomis sugadinti darbo eigą. Jums reikalingos negyvos laiškų eilutės ir stebėjimas.
Pasirinkimas tiesiogiai kontroliuoja, kaip skleidžiasi gedimas: sinchroniniai skambučiai greitai ir matomai nepavyksta, asinchroniniai pranešimai atskiriami, tačiau problemos keliamos vartotojams.
Geri jų maišymas — sinchroninis krašte, asinchroninis darbo eigose — yra pagrindinė atmintis, kurią reikia sugrupinti patvarūs mikrotarnybus.