Adresowanie mikrousług i rejestr usług

Napiwek

Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET dostępnych na platformie .NET Docs lub jako bezpłatnego pliku PDF, który można odczytać w trybie offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Każda mikrousługa ma unikatową nazwę (adres URL), która jest używana do rozpoznawania jego lokalizacji. Mikrousługa musi być adresowalna wszędzie tam, gdzie jest uruchomiona. Jeśli musisz myśleć o tym, na którym komputerze jest uruchomiona określona mikrousługa, elementy mogą działać źle. W taki sam sposób, jak usługa DNS rozpoznaje adres URL określonego komputera, mikrousługa musi mieć unikatową nazwę, aby jej bieżąca lokalizacja mogła być wykrywalna. Mikrousługi wymagają adresowych nazw, które sprawiają, że są niezależne od infrastruktury, na której działają. Takie podejście oznacza, że istnieje interakcja między sposobem wdrażania usługi i sposobem jej odnalezienia, ponieważ musi istnieć rejestr usług. W tym samym kącie, gdy komputer ulegnie awarii, usługa rejestru musi być w stanie wskazać, gdzie usługa jest teraz uruchomiona.

Wzorzec rejestru usług jest kluczowym elementem odnajdywania usługi. Rejestr jest bazą danych zawierającą lokalizacje sieciowe wystąpień usługi. Rejestr usług musi być wysoce dostępny i aktualny. Klienci mogą buforować lokalizacje sieciowe uzyskane z rejestru usług. Jednak te informacje w końcu przestaną działać, a klienci nie mogą już odnajdywać wystąpień usługi. Dlatego rejestr usług składa się z klastra serwerów używających protokołu replikacji w celu zachowania spójności.

W niektórych środowiskach wdrażania mikrousług (nazywanych klastrami, które mają być omówione w dalszej sekcji), odnajdywanie usług jest wbudowane. Na przykład środowisko usługi Azure Kubernetes Service (AKS) może obsługiwać rejestrację i wyrejestrowanie wystąpienia usługi. Uruchamia również serwer proxy na każdym hoście klastra, który odgrywa rolę routera odnajdywania po stronie serwera.

Dodatkowe zasoby