Cvičení – vytváření zrn a sila

Dokončeno 100 XP

Váš nový projekt je správně nakonfigurovaný a jste připraveni začít pracovat s Orleans. V tomto kroku vytvoříte a nakonfigurujete zrnka a sila vaší aplikace.

Vytvoříte podrobné informace pro správu každého zkráceného přesměrování adresy URL. Agregační interval ukládá základní data pro tento proces, jako je zkrácená hodnota hash a původní adresa URL, na která se má přesměrovat.

Také provedete spouštěcí konfigurace Orleans a vytvoříte silo pro uložení zrn. Zrnka lze načíst ze sila pomocí jejich identifikačního klíče. V tomto případě se zkrácená hodnota hash adresy URL zdvojnásobí jako identifikátor agregačního intervalu.

Vytvoření podrobného intervalu pro zkrácení adresy URL

Orálé zrno by mělo využívat rozhraní k definování jejich metod a vlastností. Rozhraní pro zkrácení adresy URL by mělo definovat dvě metody pro vytvoření a načtení zkrácené adresy URL.

  1. Program Uvnitř třídy přidejte následující definici rozhraní do dolní části souboru. Zrna můžou implementovat různá rozhraní, která definují typ klíče, který se používá k identifikaci agregace. V tomto případě implementujete IGrainWithStringKey rozhraní, protože řetězce jsou logickou volbou pro práci s hodnotami adresy URL.

    C#
    public interface IUrlShortenerGrain : IGrainWithStringKey
    {
        Task SetUrl(string fullUrl);
    
        Task<string> GetUrl();
    }
    
  2. Vytvořte UrlShortenerGrain třídu pomocí následujícího kódu. Tato třída dědí z Grain třídy poskytované Orleans a implementuje IUrlShortenerGrain rozhraní, které jste vytvořili. Základní Grain třída poskytuje základní funkce pro vnitřní chování Orleans.

    C#
    public sealed class UrlShortenerGrain : Grain, IUrlShortenerGrain
    {
        private KeyValuePair<string, string> _cache;
    
        public Task SetUrl(string fullUrl)
        {
            _cache = new(
                key: this.GetPrimaryKeyString(),
                value: fullUrl);
    
            return Task.CompletedTask;
        }
    
        public Task<string> GetUrl() =>
            Task.FromResult(_cache.Value);
    }
    

    Metoda SetUrl ukládá zkrácený segment trasy a úplnou adresu URL v souboru IPersistentState<TState>. Když se agregační interval načte pomocí zkráceného identifikátoru, GetUrl metoda pak vrátí úplnou adresu URL. Aplikace může pomocí úplné adresy URL přesměrovat uživatele do požadovaného umístění.

Vytvoření a konfigurace sila

V aplikaci jste definovali třídu a rozhraní zrnitosti. Pokud ale chcete úspěšně implementovat zrnko, musíte aplikaci nakonfigurovat tak, aby používala Orleans.

V horní části Program třídy refaktorujte builder kód tak, aby používal Orleans. Hotový kód by měl vypadat jako v následujícím příkladu:

C#
using Orleans.Runtime;

var builder = WebApplication.CreateBuilder(args);

builder.Host.UseOrleans(siloBuilder =>
{
    siloBuilder.UseLocalhostClustering();
});

using var app = builder.Build();

Kód používá ISiloBuilder k vytvoření sila, které může uchovávat zrnka. V tomto scénáři použijete cluster localhost, ale v produkční aplikaci můžete nakonfigurovat robustnější možnosti. Nezapomeňte, že cluster je kolekce sila pro vaši aplikaci.

Vaše aplikace je teď nastavená tak, aby během spouštění nakonfigurovali Orleans a vytvořili silo pro ukládání zrn. Také jste vytvořili třídu zrnitosti pro správu dat pro vaši aplikaci. V dalším kroku se dozvíte, jak tyto prvky umístit do práce vytvořením koncových bodů pro vytvoření a načtení zkrácených adres URL.


Další jednotka: Cvičení – sestavení koncových bodů rozhraní API

Předchozí Další