Dowiedz się więcej o składnikach platformy .NET Aspire
Mimo że każda mikrousługa w aplikacji może być unikatowa, często mają podobne wymagania dotyczące usług zapasowych, takich jak bazy danych i pamięci podręczne. Pisanie kodu w każdej mikrousłudze, która jest interfejsem z tymi usługami zapasowymi, może być trudna. W programie .NET Aspire ten kod jest zmniejszany podczas dodawania składnika .NET Aspire. Istnieją wbudowane składniki dla wielu często używanych wymagań dotyczących kopii zapasowych, których prawdopodobnie potrzebujesz w mikrousługach.
Wyobraź sobie, że pracujesz dla firmy zajmującej się odzieżą i sprzętem na świeżym powietrzu. Twoje zespoły deweloperskie zaczęły projektować mikrousługi dla nowej aplikacji internetowej eShop. Każda mikrousługa może potrzebować usług, takich jak bazy danych, usługi obsługi komunikatów i pamięci podręczne. Chcesz ocenić, jak platforma .NET Aspire może pomóc w interakcji z tymi usługami.
W tej lekcji dowiesz się więcej o składnikach, które znajdują się w gotowej wersji platformy .NET Aspire, oraz o tym, jak wybrać najlepszy składnik dla mikrousługi.
Korzystanie ze składników platformy .NET Aspire
Każdy składnik .NET Aspire jest pakietem NuGet i można go dodać do projektu przy użyciu menedżera pakietów NuGet. W programie Visual Studio jest dostępny nowy element menu Dodaj > składnik .NET Aspire. Ta akcja powoduje wyświetlenie menedżera pakietów z filtrem zastosowanym do wyświetlania tylko składników platformy .NET Aspire:
Uwaga
W dalszej części tego modułu zobaczysz, jak używać tych narzędzi składników.
Program Visual Studio Code z rozszerzeniem C# Dev Kit obsługuje również dodawanie składników platformy .NET Aspire.
Alternatywnie interfejs wiersza polecenia platformy .NET może dodawać składniki platformy .NET. Na przykład:
dotnet add package Aspire.StackExchange.Redis --prerelease
W projekcie AppHost należy zarejestrować składnik i używać go w projektach, które go nazywają:
var cache = builder.AddRedis("cache");
builder.AddProject<Projects.AspireSample_Web>("webfrontend")
.WithReference(cache);
Następnie możesz użyć iniekcji zależności, aby dodać go do projektu zużywanego:
build.AddRedisClient("cache");
Inny kod użycia różni się w zależności od używanego składnika.
Uwaga
Każdy typ składnika .NET Aspire zwykle ma równoważny pakiet hostingowy. Pakiety hostingu umożliwiają skonfigurowanie zasobów i zależności wymaganych przez aplikację i zainstalowanie ich w projekcie AppHost , a nie w projekcie korzystającym.
Składniki bazy danych
W aplikacjach natywnych dla chmury każda mikrousługa jest odpowiedzialna za przechowywanie własnych danych i może wymagać bazy danych danych ze strukturą lub częściowo ustrukturyzowaną do odczytu i zapisu. Ponieważ każda mikrousługa jest opracowywana niezależnie, może się okazać, że kilka różnych systemów baz danych jest używanych przez różne części kompletnej aplikacji.
Platforma .NET Aspire zawiera składniki dla następujących serwerów relacyjnych baz danych:
- PostgreSQL: popularny serwer bazy danych typu open source z implementacją języka Structured Query Language (SQL).
- MySQL: inny serwer bazy danych SQL typu open source.
- SQL Database: system bazy danych SQL firmy Microsoft.
Uwaga
Składnik .NET Aspire SQL Database może współdziałać z programem Microsoft SQL Server lub usługą Azure SQL Database, która jest implementacją programu SQL Server w chmurze platformy Azure. Podobnie platforma Azure obejmuje implementacje paaS (Platform-as-a-Service) postgreSQL i MySQL. Lokalizacja, w której jest uruchamiana baza danych, jest decyzją dla każdego zespołu architektury mikrousług, ale składniki platformy .NET Aspire mogą obsługiwać wiele lokalizacji w chmurze i nie wymuszają żadnej konkretnej usługi hostingu.
Jeśli chcesz pracować z danymi częściowo ustrukturyzowanymi, platforma .NET Aspire obsługuje następujące systemy NoSQL:
- MongoDB: międzyplatformowy, zorientowany na dokument serwer bazy danych NoSQL.
- Azure Cosmos DB: elastyczny system bazy danych NoSQL firmy Microsoft hostowany na platformie Azure.
Składniki magazynu
W programie .NET Aspire składniki magazynu są udostępniane dla mikrousług, które muszą przechowywać pliki, dane lub komunikaty na kontach usługi Azure Storage. Istnieje jeden składnik dla każdej z trzech usług w usłudze Azure Storage. Wybierz składnik zgodnie z tym, co chcesz zrobić z usługą Azure Storage:
- Azure Blob Storage: ta usługa służy do przechowywania i pobierania plików obiektów blob, takich jak obrazy i wideo.
- Azure Table Storage: ta usługa służy do przechowywania i pobierania wierszy w tabelach danych częściowo struktury.
- Azure Queue Storage: ta usługa służy do dodawania komunikatów do kolejek do dystrybucji do innych subskrybowanych mikrousług.
Składniki obsługi komunikatów
Jednym ze sposobów zwiększenia niezawodności i elastyczności komunikacji między mikrousługami w aplikacji natywnej dla chmury jest użycie rozwiązań do obsługi komunikatów, które zapewniają kolejki, tematy i subskrypcje zamiast bezpośredniej komunikacji. Platforma .NET Aspire zawiera składniki następujących trzech usług obsługi komunikatów. Wybierz składnik na podstawie brokera obsługi komunikatów, którego deweloper chce użyć:
- RabbitMQ: ten broker komunikatów jest powszechnie używany, open source i obsługuje kilka protokołów obsługi komunikatów w celu zapewnienia, kolejek, tematów i subskrypcji.
- Apache Kafka: ta usługa przetwarza strumienie zdarzeń, które mogą zawierać komunikaty i zawiera interfejs API platformy Kafka Connect w celu importowania i eksportowania danych do i z innych systemów.
- Azure Service Bus: ten broker komunikatów jest hostowany na platformie Azure i zapewnia kolejki i dystrybucję komunikatów opartą na subskrypcji.
Składniki buforowania
Gdy mikrousługa odbiera żądanie od użytkownika lub innej mikrousługi, może być konieczne utworzenie odpowiedzi przy użyciu danych z wielu lokalizacji lub złożonych operacji. Ta operacja może zająć trochę czasu. Buforując części takich odpowiedzi, możesz zaoszczędzić czas później po nadejściu podobnych lub identycznych żądań. W ten sposób buforowanie optymalizuje wydajność.
Jedną z popularnych usług pamięci podręcznej jest Redis. Ma ona funkcję brokera komunikatów i bazy danych w pamięci, ale jest najczęściej używana do buforowania odpowiedzi w aplikacjach internetowych i usługach. Platforma .NET Aspire ma trzy różne składniki, które współpracują z usługą Redis. Wybierz składnik na podstawie zadania buforowania, które chcesz osiągnąć w mikrousłudze:
- Składnik Redis: użyj tego składnika, jeśli chcesz użyć usługi Redis jako bazy danych w pamięci.
- Składnik buforowania wyjściowego usługi Redis: użyj tego składnika, gdy chcesz buforować pełne odpowiedzi HTTP, takie jak całe strony internetowe.
- Składnik rozproszonej pamięci podręcznej Redis: użyj tego składnika, gdy chcesz utworzyć jedną pamięć podręczną dla wielu mikrousług w aplikacji.
Zabezpieczenia
W aplikacji natywnej dla chmury zabezpieczenia danych są często tematem krytycznym dla działania firmy. Ponieważ klienci mogą ufać Tobie przy użyciu danych osobowych i poufnych, należy upewnić się, że są szyfrowane i chronione przed przechwytywaniem lub manipulowaniem. Podpisy cyfrowe i szyfrowanie wymagają przechowywania kluczy prywatnych i pobierania ich do odszyfrowywania. Usługa Azure Key Vault to jedna lokalizacja, w której można bezpiecznie przechowywać klucze i inne wpisy tajne, takie jak hasła i certyfikaty.
Platforma .NET Aspire zawiera składnik usługi Azure Key Vault, dzięki czemu można łatwo przechowywać i pobierać wpisy tajne w usłudze Azure Key Vault.