Megosztás a következőn keresztül:


.NET Aspire NATS integráció

Tartalmazza:Tartalmazza a hosting-integrációt hosting-integráció —&— Client integráció is tartalmazva vanClient integráció

NATS egy nagy teljesítményű, biztonságos, elosztott üzenetküldő rendszer. A .NET AspireNATS integráció lehetővé teszi a meglévő NATS példányokhoz való csatlakozást, és új példányok létrehozását .NET a docker.io/library/nats tárolóképmássegítségével.

Üzemeltetési integráció

NATS .NET Aspire modellje a NATS kiszolgálót mint NatsServerResource típusú integrációt kezeli. A típus eléréséhez telepítse a 📦Aspire.Hosting.Nats NuGet-csomagot az alkalmazásgazda projektben, majd adja hozzá az építővel.

dotnet add package Aspire.Hosting.Nats

További információért lásd: dotnet add package vagy csomagfüggőségek kezelése a .NET alkalmazásokban.

NATS kiszolgálói erőforrás hozzáadása

Az alkalmazásgazdaprojektben hívja meg AddNats a builder-példányon egy NATS kiszolgálóerőforrás hozzáadásához:

var builder = DistributedApplication.CreateBuilder(args);

var nats = builder.AddNats("nats");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(nats);

// After adding all resources, run the app...

Amikor .NET.NET Aspire egy konténerképet ad hozzá az alkalmazás gazdagépéhez, ahogyan az a docker.io/library/nats-konténerkép előző példájában is látható, létrehoz egy új NATS szerverpéldányt a helyi gépen. A NATS szerverre (a nats változóra) mutató hivatkozás hozzáadásra kerül a ExampleProject-höz.

A WithReference metódus konfigurál egy kapcsolatot a ExampleProject-ben, amely a "nats"nevet viseli. További információért lásd: Tárolóerőforrás-életciklus.

Borravaló

Ha inkább egy meglévő NATS kiszolgálóhoz szeretne csatlakozni, hívja meg inkább a AddConnectionString. További információért lásd: A meglévő erőforrások hivatkozása.

NATS kiszolgálói erőforrás hozzáadása a JetStream szolgáltatással

A NATS JetStreamNATS kiszolgálói erőforráshoz való hozzáadásához hívja meg a WithJetStream metódust:

var builder = DistributedApplication.CreateBuilder(args);

var nats = builder.AddNats("nats");
                  .WithJetStream();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(nats);

// After adding all resources, run the app...

A NATS JetStream funkció egy JetStream nevű beépített adatmegőrzési motort biztosít, amely lehetővé teszi az üzenetek későbbi tárolását és lejátszását.

NATS kiszolgálói erőforrás hozzáadása hitelesítési paraméterekkel

Ha explicit módon meg szeretné adni a felhasználónevet és a jelszót, paraméterekként is megadhatja őket. Tekintse meg a következő alternatív példát:

var builder = DistributedApplication.CreateBuilder(args);

var username = builder.AddParameter("username");
var password = builder.AddParameter("password", secret: true);

var nats = builder.AddNats(
    name: "nats",
    userName: username,
    password: password);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(nats);


// After adding all resources, run the app...

További információ: Külső paraméterek.

Adjon hozzá NATS szerverkiszolgálói erőforrást adatmennyiséggel

Ha adatkötetet szeretne hozzáadni a NATS kiszolgálóerőforráshoz, hívja meg a WithDataVolume metódust a NATS kiszolgálóerőforráson:

var builder = DistributedApplication.CreateBuilder(args);

var nats = builder.AddNats("nats");
                  .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(nats);

// After adding all resources, run the app...

Az adatkötet a tároló életciklusán kívüli NATS kiszolgálóadatok megőrzésére szolgál. Az adatkötet a /var/lib/nats elérési útra van csatlakoztatva a NATS szerver tárolójában. A rendszer véletlenszerűen hoz létre nevet, kivéve, ha megadja a name paramétert. További információ az adatmennyiségekről és arról, hogy miért előnyben részesítik őket a bind mountokkal szemben, lásd a Docker dokumentumot: Kötetek.

NATS szerver erőforrás hozzáadása adathalmaz csatolással

Ha adatkötési csatlakoztatást szeretne hozzáadni a NATS kiszolgálóerőforráshoz, hívja meg a WithDataBindMount metódust:

var builder = DistributedApplication.CreateBuilder(args);

var nats = builder.AddNats("nats");
                  .WithDataBindMount(
                      source: @"C:\NATS\Data",
                      isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(nats);

// After adding all resources, run the app...

Fontos

Az adat csatolások korlátozott funkcionalitással rendelkeznek a kötetekhez képest, amelyek jobb teljesítményt, hordozhatóságot és biztonságot nyújtanak, így jobban alkalmasak éles környezetben. A kötési csatlakoztatások azonban lehetővé teszik a fájlok közvetlen elérését és módosítását a gazdarendszeren, ami ideális fejlesztési és tesztelési célokra, ahol valós idejű módosításokra van szükség.

Az adat kötőpontok a gazdagép fájlrendszerére támaszkodnak, hogy a konténer újraindításakor megőrizzék a NATS kiszolgáló adatait. Az adatkötés csatlakoztatása a Windows C:\NATS\Data (vagy /NATS/DataUnix) gazdaszámítógépének NATS kiszolgálótárolójában található elérési útjára van csatlakoztatva. Az adatkötési csatlakoztatásokkal kapcsolatos további információkért lásd Docker dokumentumokat: Kötési csatlakoztatások.

Integrációs állapotellenőrzések üzemeltetése

A NATS üzemeltetési integráció automatikusan hozzáad egy állapotellenőrzést a NATS kiszolgálói erőforráshoz. Az állapot-ellenőrzés ellenőrzi, hogy a NATS kiszolgáló fut-e, és hogy létre lehet-e hozni vele kapcsolatot.

Az üzemeltetési integráció a 📦 AspNetCore.HealthChecks.Nats NuGet-csomagra támaszkodik.

Client integráció

Az .NET AspireNATS ügyfélintegráció első lépéseihez telepítse a 📦Aspire.NATS.Net- NuGet-csomagot az ügyfélfogyasztó projektben, vagyis a NATS ügyfelet használó alkalmazás projektjében. A NATS ügyfélintegráció regisztrál egy INatsConnection-példányt, amelyet a NATS-mal való interakcióhoz használhat.

dotnet add package Aspire.NATS.Net

NATS-ügyfél hozzáadása

Az ügyfélprojekt Program.cs fájljában bármelyik AddNatsClient-en hívja meg a IHostApplicationBuilder bővítménymetódust, hogy egy INatsConnection-at regisztráljon a függőséginjektálási konténer használatára. A metódus egy kapcsolatnévparamétert használ.

builder.AddNatsClient(connectionName: "nats");

Borravaló

A connectionName paraméternek meg kell egyeznie a NATS kiszolgálói erőforrás alkalmazásgazdaprojektben való hozzáadásakor használt névvel. További információért lásd: NATS szerver erőforrás hozzáadása.

Ezután függőséginjektálással lekérheti a INatsConnection-példányt. Például az ügyfél adatainak lekérése egy szolgáltatásból:

public class ExampleService(INatsConnection connection)
{
    // Use connection...
}

További információ a függőséginjektálásról: .NET függőséginjektálás.

Kulccsal rendelkező NATS ügyfél hozzáadása

Előfordulhatnak olyan helyzetek, amikor több INatsConnection példányt szeretne regisztrálni különböző kapcsolatnevekkel. A kulcsos NATS ügyfelek regisztrálásához hívja meg a AddKeyedNatsClient metódust:

builder.AddKeyedNatsClient(name: "chat");
builder.AddKeyedNatsClient(name: "queue");

Ezután függőséginjektálással lekérheti a IConnection példányokat. Ha például egy példaszolgáltatásból szeretné lekérni a kapcsolatot:

public class ExampleService(
    [FromKeyedServices("chat")] INatsConnection chatConnection,
    [FromKeyedServices("queue")] INatsConnection queueConnection)
{
    // Use connections...
}

További információ a kulcsos szolgáltatásokról: .NET függőséginjektálás: Kulcsos szolgáltatások.

Konfiguráció

A .NET AspireNATS integráció több lehetőséget is kínál a NATS kapcsolat konfigurálására a projekt követelményei és konvenciói alapján.

Kapcsolat karakterlánc használata

Amikor a builder.AddNatsClient-t hívja, adja meg a kapcsolati karakterlánc nevét:

builder.AddNatsClient(connectionName: "nats");

A kapcsolati sztring lekérése a ConnectionStrings konfigurációs szakaszból történik:

{
  "ConnectionStrings": {
    "nats": "nats://nats:4222"
  }
}

A kapcsolati sztring formázásáról további információt a ConnectionString dokumentációjában talál.

Konfigurációs szolgáltatók használata

A .NET AspireNATS integráció támogatja a Microsoft.Extensions.Configuration. Konfigurációból tölti be a NatsClientSettings-t a Aspire:Nats:Client kulccsal. Az alábbi kódrészlet egy példa egy appsettings.json fájlra, amely konfigurál néhány beállítást:

{
  "Aspire": {
    "Nats": {
      "Client": {
        "ConnectionString": "nats://nats:4222",
        "DisableHealthChecks": true,
        "DisableTracing": true
      }
    }
  }
}

A teljes NATS ügyfél-integrációs JSON sémát lásd: Aspire.NATS.Net/ConfigurationSchema.json.

Beágyazott delegátok használata

Adja át a Action<NatsClientSettings> configureSettings delegáltat, hogy beállítson néhány vagy az összes beállítást azonos helyen, például letilthatja az egészségügyi ellenőrzéseket a kód által.

builder.AddNatsClient(
    "nats",
    static settings => settings.DisableHealthChecks  = true);

NATS a .NET Aspire jegyzékben

NATS nem része a .NET Aspireüzembehelyezési jegyzék. Ajánlott, hogy NATS biztonságos éles kiszolgálót .NET Aspirekívül helyezzen el.

Client integrációs állapotfelmérés

Alapértelmezés szerint az .NET.NET Aspire integrációk lehetővé teszik állapotellenőrzéseket az összes szolgáltatás esetében. További információ: .NET.NET Aspire integrációk áttekintése.

A .NET AspireNATS integráció a következőket kezeli:

  • Integrálható a /health HTTP-végponttal, amely meghatározza, hogy az összes regisztrált állapot-ellenőrzésnek át kell mennie ahhoz, hogy az alkalmazás készen álljon a forgalom elfogadására.

Megfigyelhetőség és telemetria

.NET .NET Aspire integrációk automatikusan beállítják a naplózási, nyomkövetési és metrikakonfigurációkat, amelyeket más néven a megfigyelhetőség alappillérei. Az integráció megfigyelhetőségéről és telemetriáról további információt .NET.NET Aspire integrációk áttekintésében. A háttérszolgáltatástól függően egyes integrációk csak bizonyos funkciókat támogatnak. Egyes integrációk például támogatják a naplózást és a nyomkövetést, a metrikákat azonban nem. A telemetriai funkciók a Konfiguráció szakaszban ismertetett technikákkal is letilthatók.

Fakitermelés

Az .NET AspireNATS integráció a következő naplókategóriákat használja:

  • NATS

Nyomkövetés

A .NET AspireNATS integráció a következő nyomkövetési tevékenységeket bocsátja ki:

  • NATS.Net

Lásd még: