Serviceopdagelse i mikroservicearkitektur.

I denne artikel vil jeg forsøge at forklare om Service Discovery i Microservices-arkitekturen.

Som vi alle ved, kan alle tjenester i MS Architecture have et antal instanser kørende. I denne type arkitektur kan tjenester skaleres op eller ned, hvilket foretager ændringerne i antallet af tilfælde af bestemte tjenester. Som et resultat kører alle forekomster af tjenesterne på forskellige porte. Hvordan kan en applikation så håndtere anmodninger og finde den passende eller ønskværdige service blandt disse havne? Det er her, vi har brug for en Service Discovery-mekanisme for at kunne betjene anmodninger efter behov.

Hvad er Service Discovery?

Det er en infrastruktur, der holder styr på alle serviceforekomster og dirigerer anmodningen til den.

Der er 2 måder at implementere en sådan infrastruktur på.

1. Service Mesh

  • Dette bruges for det meste i containeriseret infrastruktur, hvor container holder styr på tjenester.

2. Tjenesteregister

  • Når applikationen ikke har nogen kontrol over netværket, og der kan være en masse medtagelse af tjenester, er dette mønster mere nyttigt, da det fungerer på applikationsniveau.

  • Her, når en ny tjeneste får et liv, vil den registrere sig selv til denne tjenesteregistrering. Så nu, hvis applikationen vil vide mere om denne tjeneste, vil den forespørge til denne tjenesteregistrering, og tjenesteregistret vil give metadata om de ønskede tjenester.

  • Ud over disse, hvis en tjeneste har mere end én instans kørende og registreret @ service registry, så vil service registry levere port-of request service til applikationen på en sådan måde, at belastningen kan afbalanceres på en mere effektiv måde.